{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.7.6-final"
    },
    "orig_nbformat": 2,
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3.7.6 64-bit",
      "metadata": {
        "interpreter": {
          "hash": "b9e360e79dec2d37e20abebf901dd1b0a0ad1c916e3ab7f373b7091e8c7887a3"
        }
      }
    },
    "colab": {
      "name": "OV-docker-usage.ipynb",
      "provenance": [],
      "collapsed_sections": []
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TOpibzYoLyJ2"
      },
      "source": [
        "# Using OpenVINO Docker containers for development and deployment\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "G4ysbemILyJ_"
      },
      "source": [
        "## Introduction\n",
        "\n",
        "The purpose of this tutorial is to examine a sample application that was created using the [Intel® Distribution of OpenVINO™ toolkit](https://software.intel.com/openvino-toolkit).  \n",
        "\n",
        "This tutorial will go step-by-step to demonstrate [speech recognition demo](https://docs.openvinotoolkit.org/latest/omz_demos_speech_recognition_deepspeech_demo_python.html) using OpenVINO™ Docker container. Recognition is performed using a pre-trained network - Mozilla* DeepSpeech. We will also cover model download and conversion via Model Optimizer. The model is capable of recognizing the speech in English.  Inference will be executed using the same CPU(s) running this Jupyter* Notebook.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zm1M7yufLyJ-"
      },
      "source": [
        "## Prerequisites\n",
        "\n",
        "This tutorial requires the following:\n",
        "- Unix* host\n",
        "- Installed and run [Docker](https://docs.docker.com/engine/install/)* engine/service on the host\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "YwJtjECwTT3o"
      },
      "source": [
        "## Preparation\n",
        "\n",
        "OpenVINO has a couple of dependencies which need to be present on your computer. Additionally, to install some of them, you need to have root/admin rights. This might not be desirable. Using Docker represents much cleaner way. Especially when there is an image prepared for you on [Docker Hub OpenVINO organization](https://hub.docker.com/r/openvino).\n",
        "\n",
        "We have some types of Docker images depend on distribution:\n",
        "\n",
        "*   **runtime** - contains Inference Engine and OpenCV runtime libs for each supported device (CPU, GNA, GPU, VPU)\n",
        "*   **dev** - contains runtime part plus samples, demos and Python development tools: Model Optimizer, Post training Optimization tool (POT), Accuracy checker, Open Model Zoo tools (downloader, converter)\n",
        "*   **data_runtime** - contains runtime part plus DL Streamer runtimes\n",
        "*   **data_dev** - contains data_runtime and dev parts plus Media SDK, Speech Libraries and End-to-End Speech Demos\n",
        "\n",
        "You can search OpenVINO Docker images on Docker Hub or via cli:\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "jO-6jBXgtPlz"
      },
      "source": [
        "\n",
        "\n",
        "```\n",
        "docker search --format \"{{.Name}}: {{.Description}}\" --no-trunc --limit 100  openvino | grep ^openvino/\n",
        "```\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "wZyb7SLEtdjN"
      },
      "source": [
        "\n",
        "Output will be like this:\n",
        "```\n",
        "openvino/workbench: OpenVINO™ DL Workbench is a web GUI to simplify DL models inference and tuning on Intel® devices.\n",
        "openvino/ubuntu18_runtime: Intel® Distribution of OpenVINO™ toolkit Docker image for Ubuntu* 18.04 LTS\n",
        "openvino/ubuntu18_dev: Intel® Distribution of OpenVINO™ toolkit Docker image for Ubuntu* 18.04 LTS\n",
        "openvino/ubuntu20_runtime: Intel® Distribution of OpenVINO™ toolkit Docker image for Ubuntu* 20.04 LTS\n",
        "openvino/model_server: Intel® Distribution of OpenVINO™ Model Server Docker images\n",
        "openvino/cvat_ui: Computer Vision Annotation Tool (CVAT) frontend UI image\n",
        "openvino/ubuntu18_data_dev: Intel® Distribution of OpenVINO™ toolkit Docker image for Ubuntu* 18.04 LTS\n",
        "openvino/cvat_server: Computer Vision Annotation Tool (CVAT) annotation backend image\n",
        "openvino/ubuntu18_dev_no_samples: Intel® Distribution of OpenVINO™ toolkit Docker image for Ubuntu* 18.04 LTS\n",
        "openvino/ubuntu18_data_runtime: Intel® Distribution of OpenVINO™ toolkit Docker image for Ubuntu* 18.04 LTS\n",
        "openvino/ubuntu18_model_server: [DEPRECATED] Please use openvino/model_server instead\n",
        "openvino/ubuntu20_data_runtime: Intel® Distribution of OpenVINO™ toolkit Docker image for Ubuntu* 20.04 LTS\n",
        "openvino/ubuntu20_data_dev: Intel® Distribution of OpenVINO™ toolkit Docker image for Ubuntu* 20.04 LTS\n",
        "openvino/winserver2019_runtime: Intel® Distribution of OpenVINO™ toolkit Docker image for Windows Server Core base LTSC 2019\n",
        "openvino/ubuntu20_dev: Intel® Distribution of OpenVINO™ toolkit Docker image for Ubuntu* 20.04 LTS\n",
        "openvino/ubuntu18_base_cpu: [DEPRECATED] Not maintained anymore\n",
        "openvino/centos7_runtime: Intel® Distribution of OpenVINO™ toolkit Docker image for CentOS*\n",
        "```\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "lr2ch7tcLyKA"
      },
      "source": [
        "## Part 1. Using OpenVINO development Docker container for model conversion and execution."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Vgfntt_SLyKA"
      },
      "source": [
        "### 1.\tPull data dev OpenVINO docker image and run it to download a model. \n",
        "\n",
        "**Note:** it will write a model on the host, please use /tmp folder."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "IUVuUHCzrDzM"
      },
      "source": [
        "`docker run` command will pull the 2021.3 release of openvino/ubuntu18_data_dev image from Docker Hub and run a container with `downloader.py` script to download `mozilla-deepspeech-0.6.1` model to `/tmp/model` folder on the host.\n",
        "\n",
        "* `-u root` or `-u 0` option needs to save downloaded model in `/tmp/model` folder under root user.\n",
        "* `--rm` option needs to remove container after execution.\n",
        "* `-v /tmp/model:/tmp/model` option needs to mount host folder to the container.\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "eIDjqDumLyKA",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "e5c054bd-4090-4cb3-aec9-0b34f02ea717"
      },
      "source": [
        "!mkdir /tmp/model\n",
        "!docker run -u root --rm -v /tmp/model:/tmp/model openvino/ubuntu18_data_dev:2021.3 deployment_tools/open_model_zoo/tools/downloader/downloader.py --name mozilla-deepspeech-0.6.1 -o /tmp/model"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Unable to find image 'openvino/ubuntu18_data_dev:2021.3' locally\n",
            "2021.3: Pulling from openvino/ubuntu18_data_dev\n",
            "\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[1B\n",
            "\u001b[19B\n",
            "\u001b[1BDigest: sha256:cf45712ca65386eb64103ca0aa1d9058589cee02ced743097b25d296a6a776ca\n",
            "Status: Downloaded newer image for openvino/ubuntu18_data_dev:2021.3\n",
            "################|| Downloading mozilla-deepspeech-0.6.1 ||################\n",
            "\n",
            "========== Downloading /tmp/model/public/mozilla-deepspeech-0.6.1/deepspeech-0.6.1-models.tar.gz\n",
            "... 0%, 1024 KB, 811 KB/s, 1 seconds passed\n",
            "... 0%, 2048 KB, 1082 KB/s, 1 seconds passed\n",
            "... 0%, 3072 KB, 1213 KB/s, 2 seconds passed\n",
            "... 0%, 4096 KB, 1301 KB/s, 3 seconds passed\n",
            "... 0%, 5120 KB, 1286 KB/s, 3 seconds passed\n",
            "... 0%, 6144 KB, 1347 KB/s, 4 seconds passed\n",
            "... 0%, 7168 KB, 1422 KB/s, 5 seconds passed\n",
            "... 0%, 8192 KB, 1508 KB/s, 5 seconds passed\n",
            "... 0%, 9216 KB, 1583 KB/s, 5 seconds passed\n",
            "... 0%, 10240 KB, 1654 KB/s, 6 seconds passed\n",
            "... 0%, 11264 KB, 1719 KB/s, 6 seconds passed\n",
            "... 1%, 12288 KB, 1784 KB/s, 6 seconds passed\n",
            "... 1%, 13312 KB, 1837 KB/s, 7 seconds passed\n",
            "... 1%, 14336 KB, 1888 KB/s, 7 seconds passed\n",
            "... 1%, 15360 KB, 1910 KB/s, 8 seconds passed\n",
            "... 1%, 16384 KB, 1926 KB/s, 8 seconds passed\n",
            "... 1%, 17408 KB, 1937 KB/s, 8 seconds passed\n",
            "... 1%, 18432 KB, 1952 KB/s, 9 seconds passed\n",
            "... 1%, 19456 KB, 1975 KB/s, 9 seconds passed\n",
            "... 1%, 20480 KB, 1936 KB/s, 10 seconds passed\n",
            "... 1%, 21504 KB, 1911 KB/s, 11 seconds passed\n",
            "... 1%, 22528 KB, 1853 KB/s, 12 seconds passed\n",
            "... 1%, 23552 KB, 1846 KB/s, 12 seconds passed\n",
            "... 2%, 24576 KB, 1863 KB/s, 13 seconds passed\n",
            "... 2%, 25600 KB, 1891 KB/s, 13 seconds passed\n",
            "... 2%, 26624 KB, 1925 KB/s, 13 seconds passed\n",
            "... 2%, 27648 KB, 1954 KB/s, 14 seconds passed\n",
            "... 2%, 28672 KB, 1977 KB/s, 14 seconds passed\n",
            "... 2%, 29696 KB, 1993 KB/s, 14 seconds passed\n",
            "... 2%, 30720 KB, 2026 KB/s, 15 seconds passed\n",
            "... 2%, 31744 KB, 2059 KB/s, 15 seconds passed\n",
            "... 2%, 32768 KB, 2091 KB/s, 15 seconds passed\n",
            "... 2%, 33792 KB, 2119 KB/s, 15 seconds passed\n",
            "... 2%, 34816 KB, 2154 KB/s, 16 seconds passed\n",
            "... 2%, 35840 KB, 2180 KB/s, 16 seconds passed\n",
            "... 3%, 36864 KB, 2208 KB/s, 16 seconds passed\n",
            "... 3%, 37888 KB, 2233 KB/s, 16 seconds passed\n",
            "... 3%, 38912 KB, 2254 KB/s, 17 seconds passed\n",
            "... 3%, 39936 KB, 2282 KB/s, 17 seconds passed\n",
            "... 3%, 40960 KB, 2303 KB/s, 17 seconds passed\n",
            "... 3%, 41984 KB, 2334 KB/s, 17 seconds passed\n",
            "... 3%, 43008 KB, 2359 KB/s, 18 seconds passed\n",
            "... 3%, 44032 KB, 2382 KB/s, 18 seconds passed\n",
            "... 3%, 45056 KB, 2406 KB/s, 18 seconds passed\n",
            "... 3%, 46080 KB, 2428 KB/s, 18 seconds passed\n",
            "... 3%, 47104 KB, 2451 KB/s, 19 seconds passed\n",
            "... 4%, 48128 KB, 2468 KB/s, 19 seconds passed\n",
            "... 4%, 49152 KB, 2466 KB/s, 19 seconds passed\n",
            "... 4%, 50176 KB, 2461 KB/s, 20 seconds passed\n",
            "... 4%, 51200 KB, 2482 KB/s, 20 seconds passed\n",
            "... 4%, 52224 KB, 2498 KB/s, 20 seconds passed\n",
            "... 4%, 53248 KB, 2521 KB/s, 21 seconds passed\n",
            "... 4%, 54272 KB, 2543 KB/s, 21 seconds passed\n",
            "... 4%, 55296 KB, 2568 KB/s, 21 seconds passed\n",
            "... 4%, 56320 KB, 2591 KB/s, 21 seconds passed\n",
            "... 4%, 57344 KB, 2615 KB/s, 21 seconds passed\n",
            "... 4%, 58368 KB, 2635 KB/s, 22 seconds passed\n",
            "... 4%, 59392 KB, 2660 KB/s, 22 seconds passed\n",
            "... 5%, 60416 KB, 2679 KB/s, 22 seconds passed\n",
            "... 5%, 61440 KB, 2703 KB/s, 22 seconds passed\n",
            "... 5%, 62464 KB, 2726 KB/s, 22 seconds passed\n",
            "... 5%, 63488 KB, 2748 KB/s, 23 seconds passed\n",
            "... 5%, 64512 KB, 2769 KB/s, 23 seconds passed\n",
            "... 5%, 65536 KB, 2789 KB/s, 23 seconds passed\n",
            "... 5%, 66560 KB, 2809 KB/s, 23 seconds passed\n",
            "... 5%, 67584 KB, 2828 KB/s, 23 seconds passed\n",
            "... 5%, 68608 KB, 2846 KB/s, 24 seconds passed\n",
            "... 5%, 69632 KB, 2864 KB/s, 24 seconds passed\n",
            "... 5%, 70656 KB, 2883 KB/s, 24 seconds passed\n",
            "... 5%, 71680 KB, 2900 KB/s, 24 seconds passed\n",
            "... 6%, 72704 KB, 2913 KB/s, 24 seconds passed\n",
            "... 6%, 73728 KB, 2902 KB/s, 25 seconds passed\n",
            "... 6%, 74752 KB, 2898 KB/s, 25 seconds passed\n",
            "... 6%, 75776 KB, 2912 KB/s, 26 seconds passed\n",
            "... 6%, 76800 KB, 2922 KB/s, 26 seconds passed\n",
            "... 6%, 77824 KB, 2935 KB/s, 26 seconds passed\n",
            "... 6%, 78848 KB, 2946 KB/s, 26 seconds passed\n",
            "... 6%, 79872 KB, 2960 KB/s, 26 seconds passed\n",
            "... 6%, 80896 KB, 2974 KB/s, 27 seconds passed\n",
            "... 6%, 81920 KB, 2990 KB/s, 27 seconds passed\n",
            "... 6%, 82944 KB, 3005 KB/s, 27 seconds passed\n",
            "... 6%, 83968 KB, 3020 KB/s, 27 seconds passed\n",
            "... 7%, 84992 KB, 3035 KB/s, 28 seconds passed\n",
            "... 7%, 86016 KB, 3048 KB/s, 28 seconds passed\n",
            "... 7%, 87040 KB, 3060 KB/s, 28 seconds passed\n",
            "... 7%, 88064 KB, 3073 KB/s, 28 seconds passed\n",
            "... 7%, 89088 KB, 3085 KB/s, 28 seconds passed\n",
            "... 7%, 90112 KB, 3097 KB/s, 29 seconds passed\n",
            "... 7%, 91136 KB, 3112 KB/s, 29 seconds passed\n",
            "... 7%, 92160 KB, 3126 KB/s, 29 seconds passed\n",
            "... 7%, 93184 KB, 3141 KB/s, 29 seconds passed\n",
            "... 7%, 94208 KB, 3157 KB/s, 29 seconds passed\n",
            "... 7%, 95232 KB, 3175 KB/s, 29 seconds passed\n",
            "... 8%, 96256 KB, 3192 KB/s, 30 seconds passed\n",
            "... 8%, 97280 KB, 3208 KB/s, 30 seconds passed\n",
            "... 8%, 98304 KB, 3224 KB/s, 30 seconds passed\n",
            "... 8%, 99328 KB, 3239 KB/s, 30 seconds passed\n",
            "... 8%, 100352 KB, 3254 KB/s, 30 seconds passed\n",
            "... 8%, 101376 KB, 3272 KB/s, 30 seconds passed\n",
            "... 8%, 102400 KB, 3285 KB/s, 31 seconds passed\n",
            "... 8%, 103424 KB, 3294 KB/s, 31 seconds passed\n",
            "... 8%, 104448 KB, 3280 KB/s, 31 seconds passed\n",
            "... 8%, 105472 KB, 3282 KB/s, 32 seconds passed\n",
            "... 8%, 106496 KB, 3291 KB/s, 32 seconds passed\n",
            "... 8%, 107520 KB, 3301 KB/s, 32 seconds passed\n",
            "... 9%, 108544 KB, 3309 KB/s, 32 seconds passed\n",
            "... 9%, 109568 KB, 3321 KB/s, 32 seconds passed\n",
            "... 9%, 110592 KB, 3334 KB/s, 33 seconds passed\n",
            "... 9%, 111616 KB, 3346 KB/s, 33 seconds passed\n",
            "... 9%, 112640 KB, 3353 KB/s, 33 seconds passed\n",
            "... 9%, 113664 KB, 3364 KB/s, 33 seconds passed\n",
            "... 9%, 114688 KB, 3377 KB/s, 33 seconds passed\n",
            "... 9%, 115712 KB, 3391 KB/s, 34 seconds passed\n",
            "... 9%, 116736 KB, 3404 KB/s, 34 seconds passed\n",
            "... 9%, 117760 KB, 3418 KB/s, 34 seconds passed\n",
            "... 9%, 118784 KB, 3431 KB/s, 34 seconds passed\n",
            "... 9%, 119808 KB, 3442 KB/s, 34 seconds passed\n",
            "... 10%, 120832 KB, 3454 KB/s, 34 seconds passed\n",
            "... 10%, 121856 KB, 3465 KB/s, 35 seconds passed\n",
            "... 10%, 122880 KB, 3478 KB/s, 35 seconds passed\n",
            "... 10%, 123904 KB, 3484 KB/s, 35 seconds passed\n",
            "... 10%, 124928 KB, 3494 KB/s, 35 seconds passed\n",
            "... 10%, 125952 KB, 3505 KB/s, 35 seconds passed\n",
            "... 10%, 126976 KB, 3514 KB/s, 36 seconds passed\n",
            "... 10%, 128000 KB, 3519 KB/s, 36 seconds passed\n",
            "... 10%, 129024 KB, 3526 KB/s, 36 seconds passed\n",
            "... 10%, 130048 KB, 3538 KB/s, 36 seconds passed\n",
            "... 10%, 131072 KB, 3549 KB/s, 36 seconds passed\n",
            "... 11%, 132096 KB, 3559 KB/s, 37 seconds passed\n",
            "... 11%, 133120 KB, 3569 KB/s, 37 seconds passed\n",
            "... 11%, 134144 KB, 3579 KB/s, 37 seconds passed\n",
            "... 11%, 135168 KB, 3587 KB/s, 37 seconds passed\n",
            "... 11%, 136192 KB, 3593 KB/s, 37 seconds passed\n",
            "... 11%, 137216 KB, 3599 KB/s, 38 seconds passed\n",
            "... 11%, 138240 KB, 3577 KB/s, 38 seconds passed\n",
            "... 11%, 139264 KB, 3560 KB/s, 39 seconds passed\n",
            "... 11%, 140288 KB, 3548 KB/s, 39 seconds passed\n",
            "... 11%, 141312 KB, 3545 KB/s, 39 seconds passed\n",
            "... 11%, 142336 KB, 3531 KB/s, 40 seconds passed\n",
            "... 11%, 143360 KB, 3503 KB/s, 40 seconds passed\n",
            "... 12%, 144384 KB, 3476 KB/s, 41 seconds passed\n",
            "... 12%, 145408 KB, 3469 KB/s, 41 seconds passed\n",
            "... 12%, 146432 KB, 3459 KB/s, 42 seconds passed\n",
            "... 12%, 147456 KB, 3454 KB/s, 42 seconds passed\n",
            "... 12%, 148480 KB, 3452 KB/s, 43 seconds passed\n",
            "... 12%, 149504 KB, 3442 KB/s, 43 seconds passed\n",
            "... 12%, 150528 KB, 3441 KB/s, 43 seconds passed\n",
            "... 12%, 151552 KB, 3439 KB/s, 44 seconds passed\n",
            "... 12%, 152576 KB, 3434 KB/s, 44 seconds passed\n",
            "... 12%, 153600 KB, 3434 KB/s, 44 seconds passed\n",
            "... 12%, 154624 KB, 3430 KB/s, 45 seconds passed\n",
            "... 12%, 155648 KB, 3425 KB/s, 45 seconds passed\n",
            "... 13%, 156672 KB, 3421 KB/s, 45 seconds passed\n",
            "... 13%, 157696 KB, 3418 KB/s, 46 seconds passed\n",
            "... 13%, 158720 KB, 3416 KB/s, 46 seconds passed\n",
            "... 13%, 159744 KB, 3388 KB/s, 47 seconds passed\n",
            "... 13%, 160768 KB, 3384 KB/s, 47 seconds passed\n",
            "... 13%, 161792 KB, 3386 KB/s, 47 seconds passed\n",
            "... 13%, 162816 KB, 3384 KB/s, 48 seconds passed\n",
            "... 13%, 163840 KB, 3386 KB/s, 48 seconds passed\n",
            "... 13%, 164864 KB, 3386 KB/s, 48 seconds passed\n",
            "... 13%, 165888 KB, 3387 KB/s, 48 seconds passed\n",
            "... 13%, 166912 KB, 3386 KB/s, 49 seconds passed\n",
            "... 13%, 167936 KB, 3388 KB/s, 49 seconds passed\n",
            "... 14%, 168960 KB, 3387 KB/s, 49 seconds passed\n",
            "... 14%, 169984 KB, 3392 KB/s, 50 seconds passed\n",
            "... 14%, 171008 KB, 3394 KB/s, 50 seconds passed\n",
            "... 14%, 172032 KB, 3399 KB/s, 50 seconds passed\n",
            "... 14%, 173056 KB, 3402 KB/s, 50 seconds passed\n",
            "... 14%, 174080 KB, 3403 KB/s, 51 seconds passed\n",
            "... 14%, 175104 KB, 3404 KB/s, 51 seconds passed\n",
            "... 14%, 176128 KB, 3403 KB/s, 51 seconds passed\n",
            "... 14%, 177152 KB, 3403 KB/s, 52 seconds passed\n",
            "... 14%, 178176 KB, 3401 KB/s, 52 seconds passed\n",
            "... 14%, 179200 KB, 3393 KB/s, 52 seconds passed\n",
            "... 15%, 180224 KB, 3374 KB/s, 53 seconds passed\n",
            "... 15%, 181248 KB, 3369 KB/s, 53 seconds passed\n",
            "... 15%, 182272 KB, 3365 KB/s, 54 seconds passed\n",
            "... 15%, 183296 KB, 3362 KB/s, 54 seconds passed\n",
            "... 15%, 184320 KB, 3363 KB/s, 54 seconds passed\n",
            "... 15%, 185344 KB, 3369 KB/s, 54 seconds passed\n",
            "... 15%, 186368 KB, 3377 KB/s, 55 seconds passed\n",
            "... 15%, 187392 KB, 3384 KB/s, 55 seconds passed\n",
            "... 15%, 188416 KB, 3392 KB/s, 55 seconds passed\n",
            "... 15%, 189440 KB, 3399 KB/s, 55 seconds passed\n",
            "... 15%, 190464 KB, 3407 KB/s, 55 seconds passed\n",
            "... 15%, 191488 KB, 3414 KB/s, 56 seconds passed\n",
            "... 16%, 192512 KB, 3423 KB/s, 56 seconds passed\n",
            "... 16%, 193536 KB, 3430 KB/s, 56 seconds passed\n",
            "... 16%, 194560 KB, 3437 KB/s, 56 seconds passed\n",
            "... 16%, 195584 KB, 3444 KB/s, 56 seconds passed\n",
            "... 16%, 196608 KB, 3451 KB/s, 56 seconds passed\n",
            "... 16%, 197632 KB, 3460 KB/s, 57 seconds passed\n",
            "... 16%, 198656 KB, 3469 KB/s, 57 seconds passed\n",
            "... 16%, 199680 KB, 3477 KB/s, 57 seconds passed\n",
            "... 16%, 200704 KB, 3486 KB/s, 57 seconds passed\n",
            "... 16%, 201728 KB, 3495 KB/s, 57 seconds passed\n",
            "... 16%, 202752 KB, 3504 KB/s, 57 seconds passed\n",
            "... 16%, 203776 KB, 3511 KB/s, 58 seconds passed\n",
            "... 17%, 204800 KB, 3519 KB/s, 58 seconds passed\n",
            "... 17%, 205824 KB, 3528 KB/s, 58 seconds passed\n",
            "... 17%, 206848 KB, 3536 KB/s, 58 seconds passed\n",
            "... 17%, 207872 KB, 3544 KB/s, 58 seconds passed\n",
            "... 17%, 208896 KB, 3553 KB/s, 58 seconds passed\n",
            "... 17%, 209920 KB, 3561 KB/s, 58 seconds passed\n",
            "... 17%, 210944 KB, 3569 KB/s, 59 seconds passed\n",
            "... 17%, 211968 KB, 3577 KB/s, 59 seconds passed\n",
            "... 17%, 212992 KB, 3585 KB/s, 59 seconds passed\n",
            "... 17%, 214016 KB, 3591 KB/s, 59 seconds passed\n",
            "... 17%, 215040 KB, 3600 KB/s, 59 seconds passed\n",
            "... 18%, 216064 KB, 3609 KB/s, 59 seconds passed\n",
            "... 18%, 217088 KB, 3618 KB/s, 59 seconds passed\n",
            "... 18%, 218112 KB, 3626 KB/s, 60 seconds passed\n",
            "... 18%, 219136 KB, 3635 KB/s, 60 seconds passed\n",
            "... 18%, 220160 KB, 3643 KB/s, 60 seconds passed\n",
            "... 18%, 221184 KB, 3652 KB/s, 60 seconds passed\n",
            "... 18%, 222208 KB, 3661 KB/s, 60 seconds passed\n",
            "... 18%, 223232 KB, 3670 KB/s, 60 seconds passed\n",
            "... 18%, 224256 KB, 3679 KB/s, 60 seconds passed\n",
            "... 18%, 225280 KB, 3688 KB/s, 61 seconds passed\n",
            "... 18%, 226304 KB, 3697 KB/s, 61 seconds passed\n",
            "... 18%, 227328 KB, 3705 KB/s, 61 seconds passed\n",
            "... 19%, 228352 KB, 3712 KB/s, 61 seconds passed\n",
            "... 19%, 229376 KB, 3719 KB/s, 61 seconds passed\n",
            "... 19%, 230400 KB, 3725 KB/s, 61 seconds passed\n",
            "... 19%, 231424 KB, 3732 KB/s, 62 seconds passed\n",
            "... 19%, 232448 KB, 3739 KB/s, 62 seconds passed\n",
            "... 19%, 233472 KB, 3744 KB/s, 62 seconds passed\n",
            "... 19%, 234496 KB, 3749 KB/s, 62 seconds passed\n",
            "... 19%, 235520 KB, 3754 KB/s, 62 seconds passed\n",
            "... 19%, 236544 KB, 3730 KB/s, 63 seconds passed\n",
            "... 19%, 237568 KB, 3561 KB/s, 66 seconds passed\n",
            "... 19%, 238592 KB, 3515 KB/s, 67 seconds passed\n",
            "... 19%, 239616 KB, 3483 KB/s, 68 seconds passed\n",
            "... 20%, 240640 KB, 3460 KB/s, 69 seconds passed\n",
            "... 20%, 241664 KB, 3437 KB/s, 70 seconds passed\n",
            "... 20%, 242688 KB, 3418 KB/s, 70 seconds passed\n",
            "... 20%, 243712 KB, 3404 KB/s, 71 seconds passed\n",
            "... 20%, 244736 KB, 3385 KB/s, 72 seconds passed\n",
            "... 20%, 245760 KB, 3371 KB/s, 72 seconds passed\n",
            "... 20%, 246784 KB, 3365 KB/s, 73 seconds passed\n",
            "... 20%, 247808 KB, 3354 KB/s, 73 seconds passed\n",
            "... 20%, 248832 KB, 3346 KB/s, 74 seconds passed\n",
            "... 20%, 249856 KB, 3339 KB/s, 74 seconds passed\n",
            "... 20%, 250880 KB, 3332 KB/s, 75 seconds passed\n",
            "... 20%, 251904 KB, 3327 KB/s, 75 seconds passed\n",
            "... 21%, 252928 KB, 3320 KB/s, 76 seconds passed\n",
            "... 21%, 253952 KB, 3315 KB/s, 76 seconds passed\n",
            "... 21%, 254976 KB, 3312 KB/s, 76 seconds passed\n",
            "... 21%, 256000 KB, 3298 KB/s, 77 seconds passed\n",
            "... 21%, 257024 KB, 3294 KB/s, 78 seconds passed\n",
            "... 21%, 258048 KB, 3293 KB/s, 78 seconds passed\n",
            "... 21%, 259072 KB, 3295 KB/s, 78 seconds passed\n",
            "... 21%, 260096 KB, 3297 KB/s, 78 seconds passed\n",
            "... 21%, 261120 KB, 3300 KB/s, 79 seconds passed\n",
            "... 21%, 262144 KB, 3302 KB/s, 79 seconds passed\n",
            "... 21%, 263168 KB, 3305 KB/s, 79 seconds passed\n",
            "... 22%, 264192 KB, 3307 KB/s, 79 seconds passed\n",
            "... 22%, 265216 KB, 3309 KB/s, 80 seconds passed\n",
            "... 22%, 266240 KB, 3310 KB/s, 80 seconds passed\n",
            "... 22%, 267264 KB, 3312 KB/s, 80 seconds passed\n",
            "... 22%, 268288 KB, 3313 KB/s, 80 seconds passed\n",
            "... 22%, 269312 KB, 3315 KB/s, 81 seconds passed\n",
            "... 22%, 270336 KB, 3316 KB/s, 81 seconds passed\n",
            "... 22%, 271360 KB, 3318 KB/s, 81 seconds passed\n",
            "... 22%, 272384 KB, 3325 KB/s, 81 seconds passed\n",
            "... 22%, 273408 KB, 3331 KB/s, 82 seconds passed\n",
            "... 22%, 274432 KB, 3337 KB/s, 82 seconds passed\n",
            "... 22%, 275456 KB, 3344 KB/s, 82 seconds passed\n",
            "... 23%, 276480 KB, 3350 KB/s, 82 seconds passed\n",
            "... 23%, 277504 KB, 3357 KB/s, 82 seconds passed\n",
            "... 23%, 278528 KB, 3363 KB/s, 82 seconds passed\n",
            "... 23%, 279552 KB, 3370 KB/s, 82 seconds passed\n",
            "... 23%, 280576 KB, 3377 KB/s, 83 seconds passed\n",
            "... 23%, 281600 KB, 3384 KB/s, 83 seconds passed\n",
            "... 23%, 282624 KB, 3391 KB/s, 83 seconds passed\n",
            "... 23%, 283648 KB, 3398 KB/s, 83 seconds passed\n",
            "... 23%, 284672 KB, 3405 KB/s, 83 seconds passed\n",
            "... 23%, 285696 KB, 3412 KB/s, 83 seconds passed\n",
            "... 23%, 286720 KB, 3420 KB/s, 83 seconds passed\n",
            "... 23%, 287744 KB, 3427 KB/s, 83 seconds passed\n",
            "... 24%, 288768 KB, 3434 KB/s, 84 seconds passed\n",
            "... 24%, 289792 KB, 3441 KB/s, 84 seconds passed\n",
            "... 24%, 290816 KB, 3449 KB/s, 84 seconds passed\n",
            "... 24%, 291840 KB, 3456 KB/s, 84 seconds passed\n",
            "... 24%, 292864 KB, 3463 KB/s, 84 seconds passed\n",
            "... 24%, 293888 KB, 3471 KB/s, 84 seconds passed\n",
            "... 24%, 294912 KB, 3479 KB/s, 84 seconds passed\n",
            "... 24%, 295936 KB, 3485 KB/s, 84 seconds passed\n",
            "... 24%, 296960 KB, 3492 KB/s, 85 seconds passed\n",
            "... 24%, 297984 KB, 3500 KB/s, 85 seconds passed\n",
            "... 24%, 299008 KB, 3507 KB/s, 85 seconds passed\n",
            "... 24%, 300032 KB, 3515 KB/s, 85 seconds passed\n",
            "... 25%, 301056 KB, 3523 KB/s, 85 seconds passed\n",
            "... 25%, 302080 KB, 3530 KB/s, 85 seconds passed\n",
            "... 25%, 303104 KB, 3538 KB/s, 85 seconds passed\n",
            "... 25%, 304128 KB, 3546 KB/s, 85 seconds passed\n",
            "... 25%, 305152 KB, 3554 KB/s, 85 seconds passed\n",
            "... 25%, 306176 KB, 3561 KB/s, 85 seconds passed\n",
            "... 25%, 307200 KB, 3569 KB/s, 86 seconds passed\n",
            "... 25%, 308224 KB, 3577 KB/s, 86 seconds passed\n",
            "... 25%, 309248 KB, 3584 KB/s, 86 seconds passed\n",
            "... 25%, 310272 KB, 3592 KB/s, 86 seconds passed\n",
            "... 25%, 311296 KB, 3599 KB/s, 86 seconds passed\n",
            "... 26%, 312320 KB, 3607 KB/s, 86 seconds passed\n",
            "... 26%, 313344 KB, 3615 KB/s, 86 seconds passed\n",
            "... 26%, 314368 KB, 3622 KB/s, 86 seconds passed\n",
            "... 26%, 315392 KB, 3630 KB/s, 86 seconds passed\n",
            "... 26%, 316416 KB, 3638 KB/s, 86 seconds passed\n",
            "... 26%, 317440 KB, 3646 KB/s, 87 seconds passed\n",
            "... 26%, 318464 KB, 3654 KB/s, 87 seconds passed\n",
            "... 26%, 319488 KB, 3661 KB/s, 87 seconds passed\n",
            "... 26%, 320512 KB, 3669 KB/s, 87 seconds passed\n",
            "... 26%, 321536 KB, 3676 KB/s, 87 seconds passed\n",
            "... 26%, 322560 KB, 3684 KB/s, 87 seconds passed\n",
            "... 26%, 323584 KB, 3691 KB/s, 87 seconds passed\n",
            "... 27%, 324608 KB, 3697 KB/s, 87 seconds passed\n",
            "... 27%, 325632 KB, 3704 KB/s, 87 seconds passed\n",
            "... 27%, 326656 KB, 3712 KB/s, 87 seconds passed\n",
            "... 27%, 327680 KB, 3719 KB/s, 88 seconds passed\n",
            "... 27%, 328704 KB, 3727 KB/s, 88 seconds passed\n",
            "... 27%, 329728 KB, 3735 KB/s, 88 seconds passed\n",
            "... 27%, 330752 KB, 3742 KB/s, 88 seconds passed\n",
            "... 27%, 331776 KB, 3750 KB/s, 88 seconds passed\n",
            "... 27%, 332800 KB, 3758 KB/s, 88 seconds passed\n",
            "... 27%, 333824 KB, 3766 KB/s, 88 seconds passed\n",
            "... 27%, 334848 KB, 3773 KB/s, 88 seconds passed\n",
            "... 27%, 335872 KB, 3781 KB/s, 88 seconds passed\n",
            "... 28%, 336896 KB, 3789 KB/s, 88 seconds passed\n",
            "... 28%, 337920 KB, 3797 KB/s, 88 seconds passed\n",
            "... 28%, 338944 KB, 3804 KB/s, 89 seconds passed\n",
            "... 28%, 339968 KB, 3812 KB/s, 89 seconds passed\n",
            "... 28%, 340992 KB, 3819 KB/s, 89 seconds passed\n",
            "... 28%, 342016 KB, 3827 KB/s, 89 seconds passed\n",
            "... 28%, 343040 KB, 3835 KB/s, 89 seconds passed\n",
            "... 28%, 344064 KB, 3842 KB/s, 89 seconds passed\n",
            "... 28%, 345088 KB, 3850 KB/s, 89 seconds passed\n",
            "... 28%, 346112 KB, 3857 KB/s, 89 seconds passed\n",
            "... 28%, 347136 KB, 3865 KB/s, 89 seconds passed\n",
            "... 29%, 348160 KB, 3873 KB/s, 89 seconds passed\n",
            "... 29%, 349184 KB, 3880 KB/s, 89 seconds passed\n",
            "... 29%, 350208 KB, 3885 KB/s, 90 seconds passed\n",
            "... 29%, 351232 KB, 3892 KB/s, 90 seconds passed\n",
            "... 29%, 352256 KB, 3895 KB/s, 90 seconds passed\n",
            "... 29%, 353280 KB, 3897 KB/s, 90 seconds passed\n",
            "... 29%, 354304 KB, 3902 KB/s, 90 seconds passed\n",
            "... 29%, 355328 KB, 3907 KB/s, 90 seconds passed\n",
            "... 29%, 356352 KB, 3913 KB/s, 91 seconds passed\n",
            "... 29%, 357376 KB, 3918 KB/s, 91 seconds passed\n",
            "... 29%, 358400 KB, 3924 KB/s, 91 seconds passed\n",
            "... 29%, 359424 KB, 3930 KB/s, 91 seconds passed\n",
            "... 30%, 360448 KB, 3936 KB/s, 91 seconds passed\n",
            "... 30%, 361472 KB, 3941 KB/s, 91 seconds passed\n",
            "... 30%, 362496 KB, 3947 KB/s, 91 seconds passed\n",
            "... 30%, 363520 KB, 3953 KB/s, 91 seconds passed\n",
            "... 30%, 364544 KB, 3959 KB/s, 92 seconds passed\n",
            "... 30%, 365568 KB, 3964 KB/s, 92 seconds passed\n",
            "... 30%, 366592 KB, 3970 KB/s, 92 seconds passed\n",
            "... 30%, 367616 KB, 3976 KB/s, 92 seconds passed\n",
            "... 30%, 368640 KB, 3982 KB/s, 92 seconds passed\n",
            "... 30%, 369664 KB, 3989 KB/s, 92 seconds passed\n",
            "... 30%, 370688 KB, 3995 KB/s, 92 seconds passed\n",
            "... 30%, 371712 KB, 4001 KB/s, 92 seconds passed\n",
            "... 31%, 372736 KB, 4008 KB/s, 92 seconds passed\n",
            "... 31%, 373760 KB, 4014 KB/s, 93 seconds passed\n",
            "... 31%, 374784 KB, 4020 KB/s, 93 seconds passed\n",
            "... 31%, 375808 KB, 4026 KB/s, 93 seconds passed\n",
            "... 31%, 376832 KB, 4031 KB/s, 93 seconds passed\n",
            "... 31%, 377856 KB, 4038 KB/s, 93 seconds passed\n",
            "... 31%, 378880 KB, 4044 KB/s, 93 seconds passed\n",
            "... 31%, 379904 KB, 4050 KB/s, 93 seconds passed\n",
            "... 31%, 380928 KB, 4057 KB/s, 93 seconds passed\n",
            "... 31%, 381952 KB, 4063 KB/s, 94 seconds passed\n",
            "... 31%, 382976 KB, 4069 KB/s, 94 seconds passed\n",
            "... 31%, 384000 KB, 4076 KB/s, 94 seconds passed\n",
            "... 32%, 385024 KB, 4082 KB/s, 94 seconds passed\n",
            "... 32%, 386048 KB, 4089 KB/s, 94 seconds passed\n",
            "... 32%, 387072 KB, 4096 KB/s, 94 seconds passed\n",
            "... 32%, 388096 KB, 4102 KB/s, 94 seconds passed\n",
            "... 32%, 389120 KB, 4109 KB/s, 94 seconds passed\n",
            "... 32%, 390144 KB, 4115 KB/s, 94 seconds passed\n",
            "... 32%, 391168 KB, 4122 KB/s, 94 seconds passed\n",
            "... 32%, 392192 KB, 4128 KB/s, 95 seconds passed\n",
            "... 32%, 393216 KB, 4133 KB/s, 95 seconds passed\n",
            "... 32%, 394240 KB, 4129 KB/s, 95 seconds passed\n",
            "... 32%, 395264 KB, 4131 KB/s, 95 seconds passed\n",
            "... 33%, 396288 KB, 4134 KB/s, 95 seconds passed\n",
            "... 33%, 397312 KB, 4137 KB/s, 96 seconds passed\n",
            "... 33%, 398336 KB, 4141 KB/s, 96 seconds passed\n",
            "... 33%, 399360 KB, 4145 KB/s, 96 seconds passed\n",
            "... 33%, 400384 KB, 4149 KB/s, 96 seconds passed\n",
            "... 33%, 401408 KB, 4153 KB/s, 96 seconds passed\n",
            "... 33%, 402432 KB, 4157 KB/s, 96 seconds passed\n",
            "... 33%, 403456 KB, 4161 KB/s, 96 seconds passed\n",
            "... 33%, 404480 KB, 4166 KB/s, 97 seconds passed\n",
            "... 33%, 405504 KB, 4170 KB/s, 97 seconds passed\n",
            "... 33%, 406528 KB, 4176 KB/s, 97 seconds passed\n",
            "... 33%, 407552 KB, 4181 KB/s, 97 seconds passed\n",
            "... 34%, 408576 KB, 4186 KB/s, 97 seconds passed\n",
            "... 34%, 409600 KB, 4191 KB/s, 97 seconds passed\n",
            "... 34%, 410624 KB, 4196 KB/s, 97 seconds passed\n",
            "... 34%, 411648 KB, 4201 KB/s, 97 seconds passed\n",
            "... 34%, 412672 KB, 4206 KB/s, 98 seconds passed\n",
            "... 34%, 413696 KB, 4212 KB/s, 98 seconds passed\n",
            "... 34%, 414720 KB, 4217 KB/s, 98 seconds passed\n",
            "... 34%, 415744 KB, 4223 KB/s, 98 seconds passed\n",
            "... 34%, 416768 KB, 4229 KB/s, 98 seconds passed\n",
            "... 34%, 417792 KB, 4234 KB/s, 98 seconds passed\n",
            "... 34%, 418816 KB, 4240 KB/s, 98 seconds passed\n",
            "... 34%, 419840 KB, 4245 KB/s, 98 seconds passed\n",
            "... 35%, 420864 KB, 4251 KB/s, 98 seconds passed\n",
            "... 35%, 421888 KB, 4257 KB/s, 99 seconds passed\n",
            "... 35%, 422912 KB, 4261 KB/s, 99 seconds passed\n",
            "... 35%, 423936 KB, 4267 KB/s, 99 seconds passed\n",
            "... 35%, 424960 KB, 4272 KB/s, 99 seconds passed\n",
            "... 35%, 425984 KB, 4278 KB/s, 99 seconds passed\n",
            "... 35%, 427008 KB, 4283 KB/s, 99 seconds passed\n",
            "... 35%, 428032 KB, 4289 KB/s, 99 seconds passed\n",
            "... 35%, 429056 KB, 4295 KB/s, 99 seconds passed\n",
            "... 35%, 430080 KB, 4300 KB/s, 100 seconds passed\n",
            "... 35%, 431104 KB, 4306 KB/s, 100 seconds passed\n",
            "... 36%, 432128 KB, 4312 KB/s, 100 seconds passed\n",
            "... 36%, 433152 KB, 4318 KB/s, 100 seconds passed\n",
            "... 36%, 434176 KB, 4324 KB/s, 100 seconds passed\n",
            "... 36%, 435200 KB, 4330 KB/s, 100 seconds passed\n",
            "... 36%, 436224 KB, 4335 KB/s, 100 seconds passed\n",
            "... 36%, 437248 KB, 4341 KB/s, 100 seconds passed\n",
            "... 36%, 438272 KB, 4347 KB/s, 100 seconds passed\n",
            "... 36%, 439296 KB, 4353 KB/s, 100 seconds passed\n",
            "... 36%, 440320 KB, 4359 KB/s, 100 seconds passed\n",
            "... 36%, 441344 KB, 4365 KB/s, 101 seconds passed\n",
            "... 36%, 442368 KB, 4372 KB/s, 101 seconds passed\n",
            "... 36%, 443392 KB, 4378 KB/s, 101 seconds passed\n",
            "... 37%, 444416 KB, 4384 KB/s, 101 seconds passed\n",
            "... 37%, 445440 KB, 4390 KB/s, 101 seconds passed\n",
            "... 37%, 446464 KB, 4396 KB/s, 101 seconds passed\n",
            "... 37%, 447488 KB, 4402 KB/s, 101 seconds passed\n",
            "... 37%, 448512 KB, 4408 KB/s, 101 seconds passed\n",
            "... 37%, 449536 KB, 4414 KB/s, 101 seconds passed\n",
            "... 37%, 450560 KB, 4420 KB/s, 101 seconds passed\n",
            "... 37%, 451584 KB, 4426 KB/s, 102 seconds passed\n",
            "... 37%, 452608 KB, 4432 KB/s, 102 seconds passed\n",
            "... 37%, 453632 KB, 4438 KB/s, 102 seconds passed\n",
            "... 37%, 454656 KB, 4444 KB/s, 102 seconds passed\n",
            "... 37%, 455680 KB, 4449 KB/s, 102 seconds passed\n",
            "... 38%, 456704 KB, 4455 KB/s, 102 seconds passed\n",
            "... 38%, 457728 KB, 4461 KB/s, 102 seconds passed\n",
            "... 38%, 458752 KB, 4467 KB/s, 102 seconds passed\n",
            "... 38%, 459776 KB, 4473 KB/s, 102 seconds passed\n",
            "... 38%, 460800 KB, 4479 KB/s, 102 seconds passed\n",
            "... 38%, 461824 KB, 4485 KB/s, 102 seconds passed\n",
            "... 38%, 462848 KB, 4491 KB/s, 103 seconds passed\n",
            "... 38%, 463872 KB, 4497 KB/s, 103 seconds passed\n",
            "... 38%, 464896 KB, 4503 KB/s, 103 seconds passed\n",
            "... 38%, 465920 KB, 4509 KB/s, 103 seconds passed\n",
            "... 38%, 466944 KB, 4515 KB/s, 103 seconds passed\n",
            "... 38%, 467968 KB, 4521 KB/s, 103 seconds passed\n",
            "... 39%, 468992 KB, 4527 KB/s, 103 seconds passed\n",
            "... 39%, 470016 KB, 4533 KB/s, 103 seconds passed\n",
            "... 39%, 471040 KB, 4539 KB/s, 103 seconds passed\n",
            "... 39%, 472064 KB, 4545 KB/s, 103 seconds passed\n",
            "... 39%, 473088 KB, 4551 KB/s, 103 seconds passed\n",
            "... 39%, 474112 KB, 4557 KB/s, 104 seconds passed\n",
            "... 39%, 475136 KB, 4563 KB/s, 104 seconds passed\n",
            "... 39%, 476160 KB, 4569 KB/s, 104 seconds passed\n",
            "... 39%, 477184 KB, 4575 KB/s, 104 seconds passed\n",
            "... 39%, 478208 KB, 4581 KB/s, 104 seconds passed\n",
            "... 39%, 479232 KB, 4586 KB/s, 104 seconds passed\n",
            "... 40%, 480256 KB, 4592 KB/s, 104 seconds passed\n",
            "... 40%, 481280 KB, 4598 KB/s, 104 seconds passed\n",
            "... 40%, 482304 KB, 4604 KB/s, 104 seconds passed\n",
            "... 40%, 483328 KB, 4610 KB/s, 104 seconds passed\n",
            "... 40%, 484352 KB, 4616 KB/s, 104 seconds passed\n",
            "... 40%, 485376 KB, 4621 KB/s, 105 seconds passed\n",
            "... 40%, 486400 KB, 4627 KB/s, 105 seconds passed\n",
            "... 40%, 487424 KB, 4631 KB/s, 105 seconds passed\n",
            "... 40%, 488448 KB, 4630 KB/s, 105 seconds passed\n",
            "... 40%, 489472 KB, 4634 KB/s, 105 seconds passed\n",
            "... 40%, 490496 KB, 4638 KB/s, 105 seconds passed\n",
            "... 40%, 491520 KB, 4643 KB/s, 105 seconds passed\n",
            "... 41%, 492544 KB, 4647 KB/s, 105 seconds passed\n",
            "... 41%, 493568 KB, 4652 KB/s, 106 seconds passed\n",
            "... 41%, 494592 KB, 4657 KB/s, 106 seconds passed\n",
            "... 41%, 495616 KB, 4661 KB/s, 106 seconds passed\n",
            "... 41%, 496640 KB, 4665 KB/s, 106 seconds passed\n",
            "... 41%, 497664 KB, 4670 KB/s, 106 seconds passed\n",
            "... 41%, 498688 KB, 4675 KB/s, 106 seconds passed\n",
            "... 41%, 499712 KB, 4679 KB/s, 106 seconds passed\n",
            "... 41%, 500736 KB, 4684 KB/s, 106 seconds passed\n",
            "... 41%, 501760 KB, 4689 KB/s, 107 seconds passed\n",
            "... 41%, 502784 KB, 4694 KB/s, 107 seconds passed\n",
            "... 41%, 503808 KB, 4697 KB/s, 107 seconds passed\n",
            "... 42%, 504832 KB, 4684 KB/s, 107 seconds passed\n",
            "... 42%, 505856 KB, 4683 KB/s, 108 seconds passed\n",
            "... 42%, 506880 KB, 4686 KB/s, 108 seconds passed\n",
            "... 42%, 507904 KB, 4688 KB/s, 108 seconds passed\n",
            "... 42%, 508928 KB, 4690 KB/s, 108 seconds passed\n",
            "... 42%, 509952 KB, 4693 KB/s, 108 seconds passed\n",
            "... 42%, 510976 KB, 4696 KB/s, 108 seconds passed\n",
            "... 42%, 512000 KB, 4699 KB/s, 108 seconds passed\n",
            "... 42%, 513024 KB, 4702 KB/s, 109 seconds passed\n",
            "... 42%, 514048 KB, 4705 KB/s, 109 seconds passed\n",
            "... 42%, 515072 KB, 4709 KB/s, 109 seconds passed\n",
            "... 43%, 516096 KB, 4712 KB/s, 109 seconds passed\n",
            "... 43%, 517120 KB, 4716 KB/s, 109 seconds passed\n",
            "... 43%, 518144 KB, 4720 KB/s, 109 seconds passed\n",
            "... 43%, 519168 KB, 4724 KB/s, 109 seconds passed\n",
            "... 43%, 520192 KB, 4728 KB/s, 110 seconds passed\n",
            "... 43%, 521216 KB, 4732 KB/s, 110 seconds passed\n",
            "... 43%, 522240 KB, 4736 KB/s, 110 seconds passed\n",
            "... 43%, 523264 KB, 4740 KB/s, 110 seconds passed\n",
            "... 43%, 524288 KB, 4744 KB/s, 110 seconds passed\n",
            "... 43%, 525312 KB, 4748 KB/s, 110 seconds passed\n",
            "... 43%, 526336 KB, 4752 KB/s, 110 seconds passed\n",
            "... 43%, 527360 KB, 4757 KB/s, 110 seconds passed\n",
            "... 44%, 528384 KB, 4762 KB/s, 110 seconds passed\n",
            "... 44%, 529408 KB, 4766 KB/s, 111 seconds passed\n",
            "... 44%, 530432 KB, 4770 KB/s, 111 seconds passed\n",
            "... 44%, 531456 KB, 4775 KB/s, 111 seconds passed\n",
            "... 44%, 532480 KB, 4780 KB/s, 111 seconds passed\n",
            "... 44%, 533504 KB, 4785 KB/s, 111 seconds passed\n",
            "... 44%, 534528 KB, 4789 KB/s, 111 seconds passed\n",
            "... 44%, 535552 KB, 4794 KB/s, 111 seconds passed\n",
            "... 44%, 536576 KB, 4799 KB/s, 111 seconds passed\n",
            "... 44%, 537600 KB, 4802 KB/s, 111 seconds passed\n",
            "... 44%, 538624 KB, 4807 KB/s, 112 seconds passed\n",
            "... 44%, 539648 KB, 4812 KB/s, 112 seconds passed\n",
            "... 45%, 540672 KB, 4817 KB/s, 112 seconds passed\n",
            "... 45%, 541696 KB, 4822 KB/s, 112 seconds passed\n",
            "... 45%, 542720 KB, 4827 KB/s, 112 seconds passed\n",
            "... 45%, 543744 KB, 4832 KB/s, 112 seconds passed\n",
            "... 45%, 544768 KB, 4837 KB/s, 112 seconds passed\n",
            "... 45%, 545792 KB, 4841 KB/s, 112 seconds passed\n",
            "... 45%, 546816 KB, 4847 KB/s, 112 seconds passed\n",
            "... 45%, 547840 KB, 4852 KB/s, 112 seconds passed\n",
            "... 45%, 548864 KB, 4857 KB/s, 112 seconds passed\n",
            "... 45%, 549888 KB, 4862 KB/s, 113 seconds passed\n",
            "... 45%, 550912 KB, 4867 KB/s, 113 seconds passed\n",
            "... 45%, 551936 KB, 4872 KB/s, 113 seconds passed\n",
            "... 46%, 552960 KB, 4877 KB/s, 113 seconds passed\n",
            "... 46%, 553984 KB, 4882 KB/s, 113 seconds passed\n",
            "... 46%, 555008 KB, 4887 KB/s, 113 seconds passed\n",
            "... 46%, 556032 KB, 4891 KB/s, 113 seconds passed\n",
            "... 46%, 557056 KB, 4886 KB/s, 114 seconds passed\n",
            "... 46%, 558080 KB, 4885 KB/s, 114 seconds passed\n",
            "... 46%, 559104 KB, 4887 KB/s, 114 seconds passed\n",
            "... 46%, 560128 KB, 4890 KB/s, 114 seconds passed\n",
            "... 46%, 561152 KB, 4891 KB/s, 114 seconds passed\n",
            "... 46%, 562176 KB, 4893 KB/s, 114 seconds passed\n",
            "... 46%, 563200 KB, 4896 KB/s, 115 seconds passed\n",
            "... 47%, 564224 KB, 4899 KB/s, 115 seconds passed\n",
            "... 47%, 565248 KB, 4902 KB/s, 115 seconds passed\n",
            "... 47%, 566272 KB, 4905 KB/s, 115 seconds passed\n",
            "... 47%, 567296 KB, 4908 KB/s, 115 seconds passed\n",
            "... 47%, 568320 KB, 4911 KB/s, 115 seconds passed\n",
            "... 47%, 569344 KB, 4915 KB/s, 115 seconds passed\n",
            "... 47%, 570368 KB, 4918 KB/s, 115 seconds passed\n",
            "... 47%, 571392 KB, 4922 KB/s, 116 seconds passed\n",
            "... 47%, 572416 KB, 4925 KB/s, 116 seconds passed\n",
            "... 47%, 573440 KB, 4929 KB/s, 116 seconds passed\n",
            "... 47%, 574464 KB, 4933 KB/s, 116 seconds passed\n",
            "... 47%, 575488 KB, 4937 KB/s, 116 seconds passed\n",
            "... 48%, 576512 KB, 4941 KB/s, 116 seconds passed\n",
            "... 48%, 577536 KB, 4944 KB/s, 116 seconds passed\n",
            "... 48%, 578560 KB, 4948 KB/s, 116 seconds passed\n",
            "... 48%, 579584 KB, 4952 KB/s, 117 seconds passed\n",
            "... 48%, 580608 KB, 4955 KB/s, 117 seconds passed\n",
            "... 48%, 581632 KB, 4960 KB/s, 117 seconds passed\n",
            "... 48%, 582656 KB, 4964 KB/s, 117 seconds passed\n",
            "... 48%, 583680 KB, 4968 KB/s, 117 seconds passed\n",
            "... 48%, 584704 KB, 4973 KB/s, 117 seconds passed\n",
            "... 48%, 585728 KB, 4976 KB/s, 117 seconds passed\n",
            "... 48%, 586752 KB, 4981 KB/s, 117 seconds passed\n",
            "... 48%, 587776 KB, 4985 KB/s, 117 seconds passed\n",
            "... 49%, 588800 KB, 4990 KB/s, 117 seconds passed\n",
            "... 49%, 589824 KB, 4994 KB/s, 118 seconds passed\n",
            "... 49%, 590848 KB, 4999 KB/s, 118 seconds passed\n",
            "... 49%, 591872 KB, 5003 KB/s, 118 seconds passed\n",
            "... 49%, 592896 KB, 5008 KB/s, 118 seconds passed\n",
            "... 49%, 593920 KB, 5012 KB/s, 118 seconds passed\n",
            "... 49%, 594944 KB, 5017 KB/s, 118 seconds passed\n",
            "... 49%, 595968 KB, 5021 KB/s, 118 seconds passed\n",
            "... 49%, 596992 KB, 5026 KB/s, 118 seconds passed\n",
            "... 49%, 598016 KB, 5031 KB/s, 118 seconds passed\n",
            "... 49%, 599040 KB, 5035 KB/s, 118 seconds passed\n",
            "... 49%, 600064 KB, 5040 KB/s, 119 seconds passed\n",
            "... 50%, 601088 KB, 5045 KB/s, 119 seconds passed\n",
            "... 50%, 602112 KB, 5050 KB/s, 119 seconds passed\n",
            "... 50%, 603136 KB, 5054 KB/s, 119 seconds passed\n",
            "... 50%, 604160 KB, 5059 KB/s, 119 seconds passed\n",
            "... 50%, 605184 KB, 5064 KB/s, 119 seconds passed\n",
            "... 50%, 606208 KB, 5069 KB/s, 119 seconds passed\n",
            "... 50%, 607232 KB, 5074 KB/s, 119 seconds passed\n",
            "... 50%, 608256 KB, 5078 KB/s, 119 seconds passed\n",
            "... 50%, 609280 KB, 5083 KB/s, 119 seconds passed\n",
            "... 50%, 610304 KB, 5088 KB/s, 119 seconds passed\n",
            "... 50%, 611328 KB, 5092 KB/s, 120 seconds passed\n",
            "... 51%, 612352 KB, 5097 KB/s, 120 seconds passed\n",
            "... 51%, 613376 KB, 5102 KB/s, 120 seconds passed\n",
            "... 51%, 614400 KB, 5106 KB/s, 120 seconds passed\n",
            "... 51%, 615424 KB, 5111 KB/s, 120 seconds passed\n",
            "... 51%, 616448 KB, 5116 KB/s, 120 seconds passed\n",
            "... 51%, 617472 KB, 5121 KB/s, 120 seconds passed\n",
            "... 51%, 618496 KB, 5125 KB/s, 120 seconds passed\n",
            "... 51%, 619520 KB, 5130 KB/s, 120 seconds passed\n",
            "... 51%, 620544 KB, 5135 KB/s, 120 seconds passed\n",
            "... 51%, 621568 KB, 5139 KB/s, 120 seconds passed\n",
            "... 51%, 622592 KB, 5144 KB/s, 121 seconds passed\n",
            "... 51%, 623616 KB, 5148 KB/s, 121 seconds passed\n",
            "... 52%, 624640 KB, 5153 KB/s, 121 seconds passed\n",
            "... 52%, 625664 KB, 5158 KB/s, 121 seconds passed\n",
            "... 52%, 626688 KB, 5162 KB/s, 121 seconds passed\n",
            "... 52%, 627712 KB, 5167 KB/s, 121 seconds passed\n",
            "... 52%, 628736 KB, 5172 KB/s, 121 seconds passed\n",
            "... 52%, 629760 KB, 5176 KB/s, 121 seconds passed\n",
            "... 52%, 630784 KB, 5181 KB/s, 121 seconds passed\n",
            "... 52%, 631808 KB, 5185 KB/s, 121 seconds passed\n",
            "... 52%, 632832 KB, 5190 KB/s, 121 seconds passed\n",
            "... 52%, 633856 KB, 5195 KB/s, 122 seconds passed\n",
            "... 52%, 634880 KB, 5199 KB/s, 122 seconds passed\n",
            "... 52%, 635904 KB, 5204 KB/s, 122 seconds passed\n",
            "... 53%, 636928 KB, 5208 KB/s, 122 seconds passed\n",
            "... 53%, 637952 KB, 5213 KB/s, 122 seconds passed\n",
            "... 53%, 638976 KB, 5217 KB/s, 122 seconds passed\n",
            "... 53%, 640000 KB, 5222 KB/s, 122 seconds passed\n",
            "... 53%, 641024 KB, 5226 KB/s, 122 seconds passed\n",
            "... 53%, 642048 KB, 5231 KB/s, 122 seconds passed\n",
            "... 53%, 643072 KB, 5235 KB/s, 122 seconds passed\n",
            "... 53%, 644096 KB, 5240 KB/s, 122 seconds passed\n",
            "... 53%, 645120 KB, 5244 KB/s, 122 seconds passed\n",
            "... 53%, 646144 KB, 5249 KB/s, 123 seconds passed\n",
            "... 53%, 647168 KB, 5252 KB/s, 123 seconds passed\n",
            "... 54%, 648192 KB, 5249 KB/s, 123 seconds passed\n",
            "... 54%, 649216 KB, 5251 KB/s, 123 seconds passed\n",
            "... 54%, 650240 KB, 5254 KB/s, 123 seconds passed\n",
            "... 54%, 651264 KB, 5257 KB/s, 123 seconds passed\n",
            "... 54%, 652288 KB, 5259 KB/s, 124 seconds passed\n",
            "... 54%, 653312 KB, 5263 KB/s, 124 seconds passed\n",
            "... 54%, 654336 KB, 5266 KB/s, 124 seconds passed\n",
            "... 54%, 655360 KB, 5269 KB/s, 124 seconds passed\n",
            "... 54%, 656384 KB, 5273 KB/s, 124 seconds passed\n",
            "... 54%, 657408 KB, 5276 KB/s, 124 seconds passed\n",
            "... 54%, 658432 KB, 5280 KB/s, 124 seconds passed\n",
            "... 54%, 659456 KB, 5283 KB/s, 124 seconds passed\n",
            "... 55%, 660480 KB, 5287 KB/s, 124 seconds passed\n",
            "... 55%, 661504 KB, 5291 KB/s, 125 seconds passed\n",
            "... 55%, 662528 KB, 5295 KB/s, 125 seconds passed\n",
            "... 55%, 663552 KB, 5298 KB/s, 125 seconds passed\n",
            "... 55%, 664576 KB, 5302 KB/s, 125 seconds passed\n",
            "... 55%, 665600 KB, 5306 KB/s, 125 seconds passed\n",
            "... 55%, 666624 KB, 5310 KB/s, 125 seconds passed\n",
            "... 55%, 667648 KB, 5314 KB/s, 125 seconds passed\n",
            "... 55%, 668672 KB, 5318 KB/s, 125 seconds passed\n",
            "... 55%, 669696 KB, 5322 KB/s, 125 seconds passed\n",
            "... 55%, 670720 KB, 5326 KB/s, 125 seconds passed\n",
            "... 55%, 671744 KB, 5330 KB/s, 126 seconds passed\n",
            "... 56%, 672768 KB, 5334 KB/s, 126 seconds passed\n",
            "... 56%, 673792 KB, 5337 KB/s, 126 seconds passed\n",
            "... 56%, 674816 KB, 5341 KB/s, 126 seconds passed\n",
            "... 56%, 675840 KB, 5345 KB/s, 126 seconds passed\n",
            "... 56%, 676864 KB, 5350 KB/s, 126 seconds passed\n",
            "... 56%, 677888 KB, 5353 KB/s, 126 seconds passed\n",
            "... 56%, 678912 KB, 5358 KB/s, 126 seconds passed\n",
            "... 56%, 679936 KB, 5362 KB/s, 126 seconds passed\n",
            "... 56%, 680960 KB, 5366 KB/s, 126 seconds passed\n",
            "... 56%, 681984 KB, 5370 KB/s, 126 seconds passed\n",
            "... 56%, 683008 KB, 5374 KB/s, 127 seconds passed\n",
            "... 56%, 684032 KB, 5378 KB/s, 127 seconds passed\n",
            "... 57%, 685056 KB, 5383 KB/s, 127 seconds passed\n",
            "... 57%, 686080 KB, 5387 KB/s, 127 seconds passed\n",
            "... 57%, 687104 KB, 5391 KB/s, 127 seconds passed\n",
            "... 57%, 688128 KB, 5395 KB/s, 127 seconds passed\n",
            "... 57%, 689152 KB, 5399 KB/s, 127 seconds passed\n",
            "... 57%, 690176 KB, 5404 KB/s, 127 seconds passed\n",
            "... 57%, 691200 KB, 5408 KB/s, 127 seconds passed\n",
            "... 57%, 692224 KB, 5412 KB/s, 127 seconds passed\n",
            "... 57%, 693248 KB, 5416 KB/s, 127 seconds passed\n",
            "... 57%, 694272 KB, 5420 KB/s, 128 seconds passed\n",
            "... 57%, 695296 KB, 5424 KB/s, 128 seconds passed\n",
            "... 58%, 696320 KB, 5428 KB/s, 128 seconds passed\n",
            "... 58%, 697344 KB, 5432 KB/s, 128 seconds passed\n",
            "... 58%, 698368 KB, 5437 KB/s, 128 seconds passed\n",
            "... 58%, 699392 KB, 5441 KB/s, 128 seconds passed\n",
            "... 58%, 700416 KB, 5443 KB/s, 128 seconds passed\n",
            "... 58%, 701440 KB, 5438 KB/s, 128 seconds passed\n",
            "... 58%, 702464 KB, 5440 KB/s, 129 seconds passed\n",
            "... 58%, 703488 KB, 5441 KB/s, 129 seconds passed\n",
            "... 58%, 704512 KB, 5442 KB/s, 129 seconds passed\n",
            "... 58%, 705536 KB, 5443 KB/s, 129 seconds passed\n",
            "... 58%, 706560 KB, 5445 KB/s, 129 seconds passed\n",
            "... 58%, 707584 KB, 5448 KB/s, 129 seconds passed\n",
            "... 59%, 708608 KB, 5450 KB/s, 129 seconds passed\n",
            "... 59%, 709632 KB, 5453 KB/s, 130 seconds passed\n",
            "... 59%, 710656 KB, 5456 KB/s, 130 seconds passed\n",
            "... 59%, 711680 KB, 5458 KB/s, 130 seconds passed\n",
            "... 59%, 712704 KB, 5461 KB/s, 130 seconds passed\n",
            "... 59%, 713728 KB, 5464 KB/s, 130 seconds passed\n",
            "... 59%, 714752 KB, 5467 KB/s, 130 seconds passed\n",
            "... 59%, 715776 KB, 5469 KB/s, 130 seconds passed\n",
            "... 59%, 716800 KB, 5472 KB/s, 130 seconds passed\n",
            "... 59%, 717824 KB, 5475 KB/s, 131 seconds passed\n",
            "... 59%, 718848 KB, 5478 KB/s, 131 seconds passed\n",
            "... 59%, 719872 KB, 5481 KB/s, 131 seconds passed\n",
            "... 60%, 720896 KB, 5485 KB/s, 131 seconds passed\n",
            "... 60%, 721920 KB, 5488 KB/s, 131 seconds passed\n",
            "... 60%, 722944 KB, 5491 KB/s, 131 seconds passed\n",
            "... 60%, 723968 KB, 5494 KB/s, 131 seconds passed\n",
            "... 60%, 724992 KB, 5498 KB/s, 131 seconds passed\n",
            "... 60%, 726016 KB, 5501 KB/s, 131 seconds passed\n",
            "... 60%, 727040 KB, 5505 KB/s, 132 seconds passed\n",
            "... 60%, 728064 KB, 5508 KB/s, 132 seconds passed\n",
            "... 60%, 729088 KB, 5512 KB/s, 132 seconds passed\n",
            "... 60%, 730112 KB, 5515 KB/s, 132 seconds passed\n",
            "... 60%, 731136 KB, 5519 KB/s, 132 seconds passed\n",
            "... 61%, 732160 KB, 5522 KB/s, 132 seconds passed\n",
            "... 61%, 733184 KB, 5526 KB/s, 132 seconds passed\n",
            "... 61%, 734208 KB, 5530 KB/s, 132 seconds passed\n",
            "... 61%, 735232 KB, 5534 KB/s, 132 seconds passed\n",
            "... 61%, 736256 KB, 5537 KB/s, 132 seconds passed\n",
            "... 61%, 737280 KB, 5541 KB/s, 133 seconds passed\n",
            "... 61%, 738304 KB, 5545 KB/s, 133 seconds passed\n",
            "... 61%, 739328 KB, 5549 KB/s, 133 seconds passed\n",
            "... 61%, 740352 KB, 5553 KB/s, 133 seconds passed\n",
            "... 61%, 741376 KB, 5557 KB/s, 133 seconds passed\n",
            "... 61%, 742400 KB, 5560 KB/s, 133 seconds passed\n",
            "... 61%, 743424 KB, 5564 KB/s, 133 seconds passed\n",
            "... 62%, 744448 KB, 5568 KB/s, 133 seconds passed\n",
            "... 62%, 745472 KB, 5572 KB/s, 133 seconds passed\n",
            "... 62%, 746496 KB, 5576 KB/s, 133 seconds passed\n",
            "... 62%, 747520 KB, 5580 KB/s, 133 seconds passed\n",
            "... 62%, 748544 KB, 5583 KB/s, 134 seconds passed\n",
            "... 62%, 749568 KB, 5587 KB/s, 134 seconds passed\n",
            "... 62%, 750592 KB, 5591 KB/s, 134 seconds passed\n",
            "... 62%, 751616 KB, 5595 KB/s, 134 seconds passed\n",
            "... 62%, 752640 KB, 5599 KB/s, 134 seconds passed\n",
            "... 62%, 753664 KB, 5603 KB/s, 134 seconds passed\n",
            "... 62%, 754688 KB, 5607 KB/s, 134 seconds passed\n",
            "... 62%, 755712 KB, 5610 KB/s, 134 seconds passed\n",
            "... 63%, 756736 KB, 5614 KB/s, 134 seconds passed\n",
            "... 63%, 757760 KB, 5618 KB/s, 134 seconds passed\n",
            "... 63%, 758784 KB, 5622 KB/s, 134 seconds passed\n",
            "... 63%, 759808 KB, 5626 KB/s, 135 seconds passed\n",
            "... 63%, 760832 KB, 5629 KB/s, 135 seconds passed\n",
            "... 63%, 761856 KB, 5633 KB/s, 135 seconds passed\n",
            "... 63%, 762880 KB, 5637 KB/s, 135 seconds passed\n",
            "... 63%, 763904 KB, 5641 KB/s, 135 seconds passed\n",
            "... 63%, 764928 KB, 5645 KB/s, 135 seconds passed\n",
            "... 63%, 765952 KB, 5649 KB/s, 135 seconds passed\n",
            "... 63%, 766976 KB, 5652 KB/s, 135 seconds passed\n",
            "... 63%, 768000 KB, 5656 KB/s, 135 seconds passed\n",
            "... 64%, 769024 KB, 5660 KB/s, 135 seconds passed\n",
            "... 64%, 770048 KB, 5664 KB/s, 135 seconds passed\n",
            "... 64%, 771072 KB, 5668 KB/s, 136 seconds passed\n",
            "... 64%, 772096 KB, 5671 KB/s, 136 seconds passed\n",
            "... 64%, 773120 KB, 5675 KB/s, 136 seconds passed\n",
            "... 64%, 774144 KB, 5678 KB/s, 136 seconds passed\n",
            "... 64%, 775168 KB, 5682 KB/s, 136 seconds passed\n",
            "... 64%, 776192 KB, 5686 KB/s, 136 seconds passed\n",
            "... 64%, 777216 KB, 5690 KB/s, 136 seconds passed\n",
            "... 64%, 778240 KB, 5693 KB/s, 136 seconds passed\n",
            "... 64%, 779264 KB, 5697 KB/s, 136 seconds passed\n",
            "... 65%, 780288 KB, 5701 KB/s, 136 seconds passed\n",
            "... 65%, 781312 KB, 5705 KB/s, 136 seconds passed\n",
            "... 65%, 782336 KB, 5708 KB/s, 137 seconds passed\n",
            "... 65%, 783360 KB, 5712 KB/s, 137 seconds passed\n",
            "... 65%, 784384 KB, 5716 KB/s, 137 seconds passed\n",
            "... 65%, 785408 KB, 5720 KB/s, 137 seconds passed\n",
            "... 65%, 786432 KB, 5718 KB/s, 137 seconds passed\n",
            "... 65%, 787456 KB, 5718 KB/s, 137 seconds passed\n",
            "... 65%, 788480 KB, 5719 KB/s, 137 seconds passed\n",
            "... 65%, 789504 KB, 5721 KB/s, 137 seconds passed\n",
            "... 65%, 790528 KB, 5723 KB/s, 138 seconds passed\n",
            "... 65%, 791552 KB, 5725 KB/s, 138 seconds passed\n",
            "... 66%, 792576 KB, 5728 KB/s, 138 seconds passed\n",
            "... 66%, 793600 KB, 5730 KB/s, 138 seconds passed\n",
            "... 66%, 794624 KB, 5733 KB/s, 138 seconds passed\n",
            "... 66%, 795648 KB, 5735 KB/s, 138 seconds passed\n",
            "... 66%, 796672 KB, 5737 KB/s, 138 seconds passed\n",
            "... 66%, 797696 KB, 5740 KB/s, 138 seconds passed\n",
            "... 66%, 798720 KB, 5742 KB/s, 139 seconds passed\n",
            "... 66%, 799744 KB, 5745 KB/s, 139 seconds passed\n",
            "... 66%, 800768 KB, 5748 KB/s, 139 seconds passed\n",
            "... 66%, 801792 KB, 5751 KB/s, 139 seconds passed\n",
            "... 66%, 802816 KB, 5754 KB/s, 139 seconds passed\n",
            "... 66%, 803840 KB, 5756 KB/s, 139 seconds passed\n",
            "... 67%, 804864 KB, 5760 KB/s, 139 seconds passed\n",
            "... 67%, 805888 KB, 5763 KB/s, 139 seconds passed\n",
            "... 67%, 806912 KB, 5766 KB/s, 139 seconds passed\n",
            "... 67%, 807936 KB, 5769 KB/s, 140 seconds passed\n",
            "... 67%, 808960 KB, 5772 KB/s, 140 seconds passed\n",
            "... 67%, 809984 KB, 5775 KB/s, 140 seconds passed\n",
            "... 67%, 811008 KB, 5778 KB/s, 140 seconds passed\n",
            "... 67%, 812032 KB, 5781 KB/s, 140 seconds passed\n",
            "... 67%, 813056 KB, 5783 KB/s, 140 seconds passed\n",
            "... 67%, 814080 KB, 5776 KB/s, 140 seconds passed\n",
            "... 67%, 815104 KB, 5773 KB/s, 141 seconds passed\n",
            "... 67%, 816128 KB, 5773 KB/s, 141 seconds passed\n",
            "... 68%, 817152 KB, 5773 KB/s, 141 seconds passed\n",
            "... 68%, 818176 KB, 5774 KB/s, 141 seconds passed\n",
            "... 68%, 819200 KB, 5774 KB/s, 141 seconds passed\n",
            "... 68%, 820224 KB, 5775 KB/s, 142 seconds passed\n",
            "... 68%, 821248 KB, 5775 KB/s, 142 seconds passed\n",
            "... 68%, 822272 KB, 5775 KB/s, 142 seconds passed\n",
            "... 68%, 823296 KB, 5775 KB/s, 142 seconds passed\n",
            "... 68%, 824320 KB, 5777 KB/s, 142 seconds passed\n",
            "... 68%, 825344 KB, 5778 KB/s, 142 seconds passed\n",
            "... 68%, 826368 KB, 5779 KB/s, 142 seconds passed\n",
            "... 68%, 827392 KB, 5780 KB/s, 143 seconds passed\n",
            "... 69%, 828416 KB, 5782 KB/s, 143 seconds passed\n",
            "... 69%, 829440 KB, 5785 KB/s, 143 seconds passed\n",
            "... 69%, 830464 KB, 5787 KB/s, 143 seconds passed\n",
            "... 69%, 831488 KB, 5789 KB/s, 143 seconds passed\n",
            "... 69%, 832512 KB, 5791 KB/s, 143 seconds passed\n",
            "... 69%, 833536 KB, 5793 KB/s, 143 seconds passed\n",
            "... 69%, 834560 KB, 5795 KB/s, 143 seconds passed\n",
            "... 69%, 835584 KB, 5798 KB/s, 144 seconds passed\n",
            "... 69%, 836608 KB, 5800 KB/s, 144 seconds passed\n",
            "... 69%, 837632 KB, 5802 KB/s, 144 seconds passed\n",
            "... 69%, 838656 KB, 5805 KB/s, 144 seconds passed\n",
            "... 69%, 839680 KB, 5807 KB/s, 144 seconds passed\n",
            "... 70%, 840704 KB, 5810 KB/s, 144 seconds passed\n",
            "... 70%, 841728 KB, 5813 KB/s, 144 seconds passed\n",
            "... 70%, 842752 KB, 5815 KB/s, 144 seconds passed\n",
            "... 70%, 843776 KB, 5818 KB/s, 145 seconds passed\n",
            "... 70%, 844800 KB, 5821 KB/s, 145 seconds passed\n",
            "... 70%, 845824 KB, 5824 KB/s, 145 seconds passed\n",
            "... 70%, 846848 KB, 5827 KB/s, 145 seconds passed\n",
            "... 70%, 847872 KB, 5830 KB/s, 145 seconds passed\n",
            "... 70%, 848896 KB, 5833 KB/s, 145 seconds passed\n",
            "... 70%, 849920 KB, 5836 KB/s, 145 seconds passed\n",
            "... 70%, 850944 KB, 5839 KB/s, 145 seconds passed\n",
            "... 70%, 851968 KB, 5842 KB/s, 145 seconds passed\n",
            "... 71%, 852992 KB, 5845 KB/s, 145 seconds passed\n",
            "... 71%, 854016 KB, 5848 KB/s, 146 seconds passed\n",
            "... 71%, 855040 KB, 5847 KB/s, 146 seconds passed\n",
            "... 71%, 856064 KB, 5844 KB/s, 146 seconds passed\n",
            "... 71%, 857088 KB, 5843 KB/s, 146 seconds passed\n",
            "... 71%, 858112 KB, 5844 KB/s, 146 seconds passed\n",
            "... 71%, 859136 KB, 5844 KB/s, 147 seconds passed\n",
            "... 71%, 860160 KB, 5844 KB/s, 147 seconds passed\n",
            "... 71%, 861184 KB, 5845 KB/s, 147 seconds passed\n",
            "... 71%, 862208 KB, 5846 KB/s, 147 seconds passed\n",
            "... 71%, 863232 KB, 5847 KB/s, 147 seconds passed\n",
            "... 72%, 864256 KB, 5848 KB/s, 147 seconds passed\n",
            "... 72%, 865280 KB, 5849 KB/s, 147 seconds passed\n",
            "... 72%, 866304 KB, 5850 KB/s, 148 seconds passed\n",
            "... 72%, 867328 KB, 5851 KB/s, 148 seconds passed\n",
            "... 72%, 868352 KB, 5853 KB/s, 148 seconds passed\n",
            "... 72%, 869376 KB, 5855 KB/s, 148 seconds passed\n",
            "... 72%, 870400 KB, 5856 KB/s, 148 seconds passed\n",
            "... 72%, 871424 KB, 5858 KB/s, 148 seconds passed\n",
            "... 72%, 872448 KB, 5860 KB/s, 148 seconds passed\n",
            "... 72%, 873472 KB, 5862 KB/s, 148 seconds passed\n",
            "... 72%, 874496 KB, 5864 KB/s, 149 seconds passed\n",
            "... 72%, 875520 KB, 5867 KB/s, 149 seconds passed\n",
            "... 73%, 876544 KB, 5869 KB/s, 149 seconds passed\n",
            "... 73%, 877568 KB, 5871 KB/s, 149 seconds passed\n",
            "... 73%, 878592 KB, 5873 KB/s, 149 seconds passed\n",
            "... 73%, 879616 KB, 5876 KB/s, 149 seconds passed\n",
            "... 73%, 880640 KB, 5878 KB/s, 149 seconds passed\n",
            "... 73%, 881664 KB, 5881 KB/s, 149 seconds passed\n",
            "... 73%, 882688 KB, 5883 KB/s, 150 seconds passed\n",
            "... 73%, 883712 KB, 5886 KB/s, 150 seconds passed\n",
            "... 73%, 884736 KB, 5888 KB/s, 150 seconds passed\n",
            "... 73%, 885760 KB, 5891 KB/s, 150 seconds passed\n",
            "... 73%, 886784 KB, 5893 KB/s, 150 seconds passed\n",
            "... 73%, 887808 KB, 5896 KB/s, 150 seconds passed\n",
            "... 74%, 888832 KB, 5899 KB/s, 150 seconds passed\n",
            "... 74%, 889856 KB, 5902 KB/s, 150 seconds passed\n",
            "... 74%, 890880 KB, 5905 KB/s, 150 seconds passed\n",
            "... 74%, 891904 KB, 5907 KB/s, 150 seconds passed\n",
            "... 74%, 892928 KB, 5910 KB/s, 151 seconds passed\n",
            "... 74%, 893952 KB, 5913 KB/s, 151 seconds passed\n",
            "... 74%, 894976 KB, 5916 KB/s, 151 seconds passed\n",
            "... 74%, 896000 KB, 5919 KB/s, 151 seconds passed\n",
            "... 74%, 897024 KB, 5922 KB/s, 151 seconds passed\n",
            "... 74%, 898048 KB, 5925 KB/s, 151 seconds passed\n",
            "... 74%, 899072 KB, 5928 KB/s, 151 seconds passed\n",
            "... 74%, 900096 KB, 5931 KB/s, 151 seconds passed\n",
            "... 75%, 901120 KB, 5934 KB/s, 151 seconds passed\n",
            "... 75%, 902144 KB, 5937 KB/s, 151 seconds passed\n",
            "... 75%, 903168 KB, 5941 KB/s, 152 seconds passed\n",
            "... 75%, 904192 KB, 5944 KB/s, 152 seconds passed\n",
            "... 75%, 905216 KB, 5946 KB/s, 152 seconds passed\n",
            "... 75%, 906240 KB, 5949 KB/s, 152 seconds passed\n",
            "... 75%, 907264 KB, 5953 KB/s, 152 seconds passed\n",
            "... 75%, 908288 KB, 5956 KB/s, 152 seconds passed\n",
            "... 75%, 909312 KB, 5959 KB/s, 152 seconds passed\n",
            "... 75%, 910336 KB, 5962 KB/s, 152 seconds passed\n",
            "... 75%, 911360 KB, 5965 KB/s, 152 seconds passed\n",
            "... 76%, 912384 KB, 5969 KB/s, 152 seconds passed\n",
            "... 76%, 913408 KB, 5972 KB/s, 152 seconds passed\n",
            "... 76%, 914432 KB, 5975 KB/s, 153 seconds passed\n",
            "... 76%, 915456 KB, 5978 KB/s, 153 seconds passed\n",
            "... 76%, 916480 KB, 5981 KB/s, 153 seconds passed\n",
            "... 76%, 917504 KB, 5984 KB/s, 153 seconds passed\n",
            "... 76%, 918528 KB, 5987 KB/s, 153 seconds passed\n",
            "... 76%, 919552 KB, 5990 KB/s, 153 seconds passed\n",
            "... 76%, 920576 KB, 5994 KB/s, 153 seconds passed\n",
            "... 76%, 921600 KB, 5997 KB/s, 153 seconds passed\n",
            "... 76%, 922624 KB, 6000 KB/s, 153 seconds passed\n",
            "... 76%, 923648 KB, 6003 KB/s, 153 seconds passed\n",
            "... 77%, 924672 KB, 6006 KB/s, 153 seconds passed\n",
            "... 77%, 925696 KB, 6009 KB/s, 154 seconds passed\n",
            "... 77%, 926720 KB, 6013 KB/s, 154 seconds passed\n",
            "... 77%, 927744 KB, 6016 KB/s, 154 seconds passed\n",
            "... 77%, 928768 KB, 6019 KB/s, 154 seconds passed\n",
            "... 77%, 929792 KB, 6022 KB/s, 154 seconds passed\n",
            "... 77%, 930816 KB, 6025 KB/s, 154 seconds passed\n",
            "... 77%, 931840 KB, 6028 KB/s, 154 seconds passed\n",
            "... 77%, 932864 KB, 6031 KB/s, 154 seconds passed\n",
            "... 77%, 933888 KB, 6034 KB/s, 154 seconds passed\n",
            "... 77%, 934912 KB, 6038 KB/s, 154 seconds passed\n",
            "... 77%, 935936 KB, 6041 KB/s, 154 seconds passed\n",
            "... 78%, 936960 KB, 6044 KB/s, 155 seconds passed\n",
            "... 78%, 937984 KB, 6047 KB/s, 155 seconds passed\n",
            "... 78%, 939008 KB, 6050 KB/s, 155 seconds passed\n",
            "... 78%, 940032 KB, 6053 KB/s, 155 seconds passed\n",
            "... 78%, 941056 KB, 6056 KB/s, 155 seconds passed\n",
            "... 78%, 942080 KB, 6059 KB/s, 155 seconds passed\n",
            "... 78%, 943104 KB, 6062 KB/s, 155 seconds passed\n",
            "... 78%, 944128 KB, 6065 KB/s, 155 seconds passed\n",
            "... 78%, 945152 KB, 6069 KB/s, 155 seconds passed\n",
            "... 78%, 946176 KB, 6072 KB/s, 155 seconds passed\n",
            "... 78%, 947200 KB, 6075 KB/s, 155 seconds passed\n",
            "... 79%, 948224 KB, 6078 KB/s, 156 seconds passed\n",
            "... 79%, 949248 KB, 6081 KB/s, 156 seconds passed\n",
            "... 79%, 950272 KB, 6081 KB/s, 156 seconds passed\n",
            "... 79%, 951296 KB, 6078 KB/s, 156 seconds passed\n",
            "... 79%, 952320 KB, 6080 KB/s, 156 seconds passed\n",
            "... 79%, 953344 KB, 6081 KB/s, 156 seconds passed\n",
            "... 79%, 954368 KB, 6083 KB/s, 156 seconds passed\n",
            "... 79%, 955392 KB, 6085 KB/s, 157 seconds passed\n",
            "... 79%, 956416 KB, 6087 KB/s, 157 seconds passed\n",
            "... 79%, 957440 KB, 6088 KB/s, 157 seconds passed\n",
            "... 79%, 958464 KB, 6090 KB/s, 157 seconds passed\n",
            "... 79%, 959488 KB, 6092 KB/s, 157 seconds passed\n",
            "... 80%, 960512 KB, 6094 KB/s, 157 seconds passed\n",
            "... 80%, 961536 KB, 6096 KB/s, 157 seconds passed\n",
            "... 80%, 962560 KB, 6097 KB/s, 157 seconds passed\n",
            "... 80%, 963584 KB, 6099 KB/s, 157 seconds passed\n",
            "... 80%, 964608 KB, 6100 KB/s, 158 seconds passed\n",
            "... 80%, 965632 KB, 6101 KB/s, 158 seconds passed\n",
            "... 80%, 966656 KB, 6103 KB/s, 158 seconds passed\n",
            "... 80%, 967680 KB, 6105 KB/s, 158 seconds passed\n",
            "... 80%, 968704 KB, 6107 KB/s, 158 seconds passed\n",
            "... 80%, 969728 KB, 6108 KB/s, 158 seconds passed\n",
            "... 80%, 970752 KB, 6110 KB/s, 158 seconds passed\n",
            "... 80%, 971776 KB, 6112 KB/s, 158 seconds passed\n",
            "... 81%, 972800 KB, 6114 KB/s, 159 seconds passed\n",
            "... 81%, 973824 KB, 6117 KB/s, 159 seconds passed\n",
            "... 81%, 974848 KB, 6119 KB/s, 159 seconds passed\n",
            "... 81%, 975872 KB, 6121 KB/s, 159 seconds passed\n",
            "... 81%, 976896 KB, 6123 KB/s, 159 seconds passed\n",
            "... 81%, 977920 KB, 6125 KB/s, 159 seconds passed\n",
            "... 81%, 978944 KB, 6126 KB/s, 159 seconds passed\n",
            "... 81%, 979968 KB, 6127 KB/s, 159 seconds passed\n",
            "... 81%, 980992 KB, 6128 KB/s, 160 seconds passed\n",
            "... 81%, 982016 KB, 6128 KB/s, 160 seconds passed\n",
            "... 81%, 983040 KB, 6129 KB/s, 160 seconds passed\n",
            "... 81%, 984064 KB, 6130 KB/s, 160 seconds passed\n",
            "... 82%, 985088 KB, 6133 KB/s, 160 seconds passed\n",
            "... 82%, 986112 KB, 6136 KB/s, 160 seconds passed\n",
            "... 82%, 987136 KB, 6139 KB/s, 160 seconds passed\n",
            "... 82%, 988160 KB, 6141 KB/s, 160 seconds passed\n",
            "... 82%, 989184 KB, 6144 KB/s, 160 seconds passed\n",
            "... 82%, 990208 KB, 6146 KB/s, 161 seconds passed\n",
            "... 82%, 991232 KB, 6149 KB/s, 161 seconds passed\n",
            "... 82%, 992256 KB, 6152 KB/s, 161 seconds passed\n",
            "... 82%, 993280 KB, 6154 KB/s, 161 seconds passed\n",
            "... 82%, 994304 KB, 6157 KB/s, 161 seconds passed\n",
            "... 82%, 995328 KB, 6160 KB/s, 161 seconds passed\n",
            "... 83%, 996352 KB, 6162 KB/s, 161 seconds passed\n",
            "... 83%, 997376 KB, 6165 KB/s, 161 seconds passed\n",
            "... 83%, 998400 KB, 6168 KB/s, 161 seconds passed\n",
            "... 83%, 999424 KB, 6171 KB/s, 161 seconds passed\n",
            "... 83%, 1000448 KB, 6173 KB/s, 162 seconds passed\n",
            "... 83%, 1001472 KB, 6176 KB/s, 162 seconds passed\n",
            "... 83%, 1002496 KB, 6179 KB/s, 162 seconds passed\n",
            "... 83%, 1003520 KB, 6182 KB/s, 162 seconds passed\n",
            "... 83%, 1004544 KB, 6184 KB/s, 162 seconds passed\n",
            "... 83%, 1005568 KB, 6187 KB/s, 162 seconds passed\n",
            "... 83%, 1006592 KB, 6190 KB/s, 162 seconds passed\n",
            "... 83%, 1007616 KB, 6193 KB/s, 162 seconds passed\n",
            "... 84%, 1008640 KB, 6196 KB/s, 162 seconds passed\n",
            "... 84%, 1009664 KB, 6199 KB/s, 162 seconds passed\n",
            "... 84%, 1010688 KB, 6201 KB/s, 162 seconds passed\n",
            "... 84%, 1011712 KB, 6204 KB/s, 163 seconds passed\n",
            "... 84%, 1012736 KB, 6207 KB/s, 163 seconds passed\n",
            "... 84%, 1013760 KB, 6210 KB/s, 163 seconds passed\n",
            "... 84%, 1014784 KB, 6213 KB/s, 163 seconds passed\n",
            "... 84%, 1015808 KB, 6216 KB/s, 163 seconds passed\n",
            "... 84%, 1016832 KB, 6219 KB/s, 163 seconds passed\n",
            "... 84%, 1017856 KB, 6222 KB/s, 163 seconds passed\n",
            "... 84%, 1018880 KB, 6224 KB/s, 163 seconds passed\n",
            "... 84%, 1019904 KB, 6227 KB/s, 163 seconds passed\n",
            "... 85%, 1020928 KB, 6230 KB/s, 163 seconds passed\n",
            "... 85%, 1021952 KB, 6233 KB/s, 163 seconds passed\n",
            "... 85%, 1022976 KB, 6236 KB/s, 164 seconds passed\n",
            "... 85%, 1024000 KB, 6239 KB/s, 164 seconds passed\n",
            "... 85%, 1025024 KB, 6241 KB/s, 164 seconds passed\n",
            "... 85%, 1026048 KB, 6244 KB/s, 164 seconds passed\n",
            "... 85%, 1027072 KB, 6247 KB/s, 164 seconds passed\n",
            "... 85%, 1028096 KB, 6250 KB/s, 164 seconds passed\n",
            "... 85%, 1029120 KB, 6253 KB/s, 164 seconds passed\n",
            "... 85%, 1030144 KB, 6255 KB/s, 164 seconds passed\n",
            "... 85%, 1031168 KB, 6258 KB/s, 164 seconds passed\n",
            "... 86%, 1032192 KB, 6261 KB/s, 164 seconds passed\n",
            "... 86%, 1033216 KB, 6261 KB/s, 165 seconds passed\n",
            "... 86%, 1034240 KB, 6255 KB/s, 165 seconds passed\n",
            "... 86%, 1035264 KB, 6255 KB/s, 165 seconds passed\n",
            "... 86%, 1036288 KB, 6245 KB/s, 165 seconds passed\n",
            "... 86%, 1037312 KB, 6192 KB/s, 167 seconds passed\n",
            "... 86%, 1038336 KB, 6190 KB/s, 167 seconds passed\n",
            "... 86%, 1039360 KB, 6188 KB/s, 167 seconds passed\n",
            "... 86%, 1040384 KB, 6186 KB/s, 168 seconds passed\n",
            "... 86%, 1041408 KB, 6184 KB/s, 168 seconds passed\n",
            "... 86%, 1042432 KB, 6183 KB/s, 168 seconds passed\n",
            "... 86%, 1043456 KB, 6182 KB/s, 168 seconds passed\n",
            "... 87%, 1044480 KB, 6182 KB/s, 168 seconds passed\n",
            "... 87%, 1045504 KB, 6182 KB/s, 169 seconds passed\n",
            "... 87%, 1046528 KB, 6181 KB/s, 169 seconds passed\n",
            "... 87%, 1047552 KB, 6182 KB/s, 169 seconds passed\n",
            "... 87%, 1048576 KB, 6182 KB/s, 169 seconds passed\n",
            "... 87%, 1049600 KB, 6182 KB/s, 169 seconds passed\n",
            "... 87%, 1050624 KB, 6182 KB/s, 169 seconds passed\n",
            "... 87%, 1051648 KB, 6182 KB/s, 170 seconds passed\n",
            "... 87%, 1052672 KB, 6183 KB/s, 170 seconds passed\n",
            "... 87%, 1053696 KB, 6184 KB/s, 170 seconds passed\n",
            "... 87%, 1054720 KB, 6185 KB/s, 170 seconds passed\n",
            "... 87%, 1055744 KB, 6186 KB/s, 170 seconds passed\n",
            "... 88%, 1056768 KB, 6188 KB/s, 170 seconds passed\n",
            "... 88%, 1057792 KB, 6189 KB/s, 170 seconds passed\n",
            "... 88%, 1058816 KB, 6190 KB/s, 171 seconds passed\n",
            "... 88%, 1059840 KB, 6191 KB/s, 171 seconds passed\n",
            "... 88%, 1060864 KB, 6193 KB/s, 171 seconds passed\n",
            "... 88%, 1061888 KB, 6195 KB/s, 171 seconds passed\n",
            "... 88%, 1062912 KB, 6196 KB/s, 171 seconds passed\n",
            "... 88%, 1063936 KB, 6198 KB/s, 171 seconds passed\n",
            "... 88%, 1064960 KB, 6199 KB/s, 171 seconds passed\n",
            "... 88%, 1065984 KB, 6201 KB/s, 171 seconds passed\n",
            "... 88%, 1067008 KB, 6203 KB/s, 172 seconds passed\n",
            "... 88%, 1068032 KB, 6205 KB/s, 172 seconds passed\n",
            "... 89%, 1069056 KB, 6207 KB/s, 172 seconds passed\n",
            "... 89%, 1070080 KB, 6208 KB/s, 172 seconds passed\n",
            "... 89%, 1071104 KB, 6210 KB/s, 172 seconds passed\n",
            "... 89%, 1072128 KB, 6212 KB/s, 172 seconds passed\n",
            "... 89%, 1073152 KB, 6210 KB/s, 172 seconds passed\n",
            "... 89%, 1074176 KB, 6208 KB/s, 173 seconds passed\n",
            "... 89%, 1075200 KB, 6207 KB/s, 173 seconds passed\n",
            "... 89%, 1076224 KB, 6205 KB/s, 173 seconds passed\n",
            "... 89%, 1077248 KB, 6204 KB/s, 173 seconds passed\n",
            "... 89%, 1078272 KB, 6204 KB/s, 173 seconds passed\n",
            "... 89%, 1079296 KB, 6203 KB/s, 173 seconds passed\n",
            "... 90%, 1080320 KB, 6203 KB/s, 174 seconds passed\n",
            "... 90%, 1081344 KB, 6203 KB/s, 174 seconds passed\n",
            "... 90%, 1082368 KB, 6202 KB/s, 174 seconds passed\n",
            "... 90%, 1083392 KB, 6202 KB/s, 174 seconds passed\n",
            "... 90%, 1084416 KB, 6203 KB/s, 174 seconds passed\n",
            "... 90%, 1085440 KB, 6204 KB/s, 174 seconds passed\n",
            "... 90%, 1086464 KB, 6204 KB/s, 175 seconds passed\n",
            "... 90%, 1087488 KB, 6205 KB/s, 175 seconds passed\n",
            "... 90%, 1088512 KB, 6206 KB/s, 175 seconds passed\n",
            "... 90%, 1089536 KB, 6207 KB/s, 175 seconds passed\n",
            "... 90%, 1090560 KB, 6209 KB/s, 175 seconds passed\n",
            "... 90%, 1091584 KB, 6210 KB/s, 175 seconds passed\n",
            "... 91%, 1092608 KB, 6211 KB/s, 175 seconds passed\n",
            "... 91%, 1093632 KB, 6213 KB/s, 176 seconds passed\n",
            "... 91%, 1094656 KB, 6214 KB/s, 176 seconds passed\n",
            "... 91%, 1095680 KB, 6215 KB/s, 176 seconds passed\n",
            "... 91%, 1096704 KB, 6217 KB/s, 176 seconds passed\n",
            "... 91%, 1097728 KB, 6218 KB/s, 176 seconds passed\n",
            "... 91%, 1098752 KB, 6220 KB/s, 176 seconds passed\n",
            "... 91%, 1099776 KB, 6221 KB/s, 176 seconds passed\n",
            "... 91%, 1100800 KB, 6223 KB/s, 176 seconds passed\n",
            "... 91%, 1101824 KB, 6225 KB/s, 176 seconds passed\n",
            "... 91%, 1102848 KB, 6226 KB/s, 177 seconds passed\n",
            "... 91%, 1103872 KB, 6228 KB/s, 177 seconds passed\n",
            "... 92%, 1104896 KB, 6230 KB/s, 177 seconds passed\n",
            "... 92%, 1105920 KB, 6233 KB/s, 177 seconds passed\n",
            "... 92%, 1106944 KB, 6235 KB/s, 177 seconds passed\n",
            "... 92%, 1107968 KB, 6236 KB/s, 177 seconds passed\n",
            "... 92%, 1108992 KB, 6238 KB/s, 177 seconds passed\n",
            "... 92%, 1110016 KB, 6241 KB/s, 177 seconds passed\n",
            "... 92%, 1111040 KB, 6243 KB/s, 177 seconds passed\n",
            "... 92%, 1112064 KB, 6245 KB/s, 178 seconds passed\n",
            "... 92%, 1113088 KB, 6247 KB/s, 178 seconds passed\n",
            "... 92%, 1114112 KB, 6250 KB/s, 178 seconds passed\n",
            "... 92%, 1115136 KB, 6252 KB/s, 178 seconds passed\n",
            "... 92%, 1116160 KB, 6254 KB/s, 178 seconds passed\n",
            "... 93%, 1117184 KB, 6257 KB/s, 178 seconds passed\n",
            "... 93%, 1118208 KB, 6259 KB/s, 178 seconds passed\n",
            "... 93%, 1119232 KB, 6262 KB/s, 178 seconds passed\n",
            "... 93%, 1120256 KB, 6264 KB/s, 178 seconds passed\n",
            "... 93%, 1121280 KB, 6267 KB/s, 178 seconds passed\n",
            "... 93%, 1122304 KB, 6269 KB/s, 179 seconds passed\n",
            "... 93%, 1123328 KB, 6272 KB/s, 179 seconds passed\n",
            "... 93%, 1124352 KB, 6274 KB/s, 179 seconds passed\n",
            "... 93%, 1125376 KB, 6277 KB/s, 179 seconds passed\n",
            "... 93%, 1126400 KB, 6279 KB/s, 179 seconds passed\n",
            "... 93%, 1127424 KB, 6282 KB/s, 179 seconds passed\n",
            "... 94%, 1128448 KB, 6284 KB/s, 179 seconds passed\n",
            "... 94%, 1129472 KB, 6287 KB/s, 179 seconds passed\n",
            "... 94%, 1130496 KB, 6289 KB/s, 179 seconds passed\n",
            "... 94%, 1131520 KB, 6292 KB/s, 179 seconds passed\n",
            "... 94%, 1132544 KB, 6295 KB/s, 179 seconds passed\n",
            "... 94%, 1133568 KB, 6297 KB/s, 180 seconds passed\n",
            "... 94%, 1134592 KB, 6300 KB/s, 180 seconds passed\n",
            "... 94%, 1135616 KB, 6302 KB/s, 180 seconds passed\n",
            "... 94%, 1136640 KB, 6305 KB/s, 180 seconds passed\n",
            "... 94%, 1137664 KB, 6307 KB/s, 180 seconds passed\n",
            "... 94%, 1138688 KB, 6310 KB/s, 180 seconds passed\n",
            "... 94%, 1139712 KB, 6312 KB/s, 180 seconds passed\n",
            "... 95%, 1140736 KB, 6315 KB/s, 180 seconds passed\n",
            "... 95%, 1141760 KB, 6317 KB/s, 180 seconds passed\n",
            "... 95%, 1142784 KB, 6320 KB/s, 180 seconds passed\n",
            "... 95%, 1143808 KB, 6322 KB/s, 180 seconds passed\n",
            "... 95%, 1144832 KB, 6325 KB/s, 180 seconds passed\n",
            "... 95%, 1145856 KB, 6327 KB/s, 181 seconds passed\n",
            "... 95%, 1146880 KB, 6330 KB/s, 181 seconds passed\n",
            "... 95%, 1147904 KB, 6332 KB/s, 181 seconds passed\n",
            "... 95%, 1148928 KB, 6335 KB/s, 181 seconds passed\n",
            "... 95%, 1149952 KB, 6337 KB/s, 181 seconds passed\n",
            "... 95%, 1150976 KB, 6340 KB/s, 181 seconds passed\n",
            "... 95%, 1152000 KB, 6342 KB/s, 181 seconds passed\n",
            "... 96%, 1153024 KB, 6345 KB/s, 181 seconds passed\n",
            "... 96%, 1154048 KB, 6348 KB/s, 181 seconds passed\n",
            "... 96%, 1155072 KB, 6350 KB/s, 181 seconds passed\n",
            "... 96%, 1156096 KB, 6352 KB/s, 181 seconds passed\n",
            "... 96%, 1157120 KB, 6355 KB/s, 182 seconds passed\n",
            "... 96%, 1158144 KB, 6357 KB/s, 182 seconds passed\n",
            "... 96%, 1159168 KB, 6360 KB/s, 182 seconds passed\n",
            "... 96%, 1160192 KB, 6362 KB/s, 182 seconds passed\n",
            "... 96%, 1161216 KB, 6365 KB/s, 182 seconds passed\n",
            "... 96%, 1162240 KB, 6367 KB/s, 182 seconds passed\n",
            "... 96%, 1163264 KB, 6370 KB/s, 182 seconds passed\n",
            "... 97%, 1164288 KB, 6372 KB/s, 182 seconds passed\n",
            "... 97%, 1165312 KB, 6375 KB/s, 182 seconds passed\n",
            "... 97%, 1166336 KB, 6377 KB/s, 182 seconds passed\n",
            "... 97%, 1167360 KB, 6380 KB/s, 182 seconds passed\n",
            "... 97%, 1168384 KB, 6382 KB/s, 183 seconds passed\n",
            "... 97%, 1169408 KB, 6385 KB/s, 183 seconds passed\n",
            "... 97%, 1170432 KB, 6385 KB/s, 183 seconds passed\n",
            "... 97%, 1171456 KB, 6380 KB/s, 183 seconds passed\n",
            "... 97%, 1172480 KB, 6381 KB/s, 183 seconds passed\n",
            "... 97%, 1173504 KB, 6382 KB/s, 183 seconds passed\n",
            "... 97%, 1174528 KB, 6383 KB/s, 184 seconds passed\n",
            "... 97%, 1175552 KB, 6384 KB/s, 184 seconds passed\n",
            "... 98%, 1176576 KB, 6384 KB/s, 184 seconds passed\n",
            "... 98%, 1177600 KB, 6386 KB/s, 184 seconds passed\n",
            "... 98%, 1178624 KB, 6387 KB/s, 184 seconds passed\n",
            "... 98%, 1179648 KB, 6388 KB/s, 184 seconds passed\n",
            "... 98%, 1180672 KB, 6390 KB/s, 184 seconds passed\n",
            "... 98%, 1181696 KB, 6392 KB/s, 184 seconds passed\n",
            "... 98%, 1182720 KB, 6393 KB/s, 184 seconds passed\n",
            "... 98%, 1183744 KB, 6394 KB/s, 185 seconds passed\n",
            "... 98%, 1184768 KB, 6396 KB/s, 185 seconds passed\n",
            "... 98%, 1185792 KB, 6398 KB/s, 185 seconds passed\n",
            "... 98%, 1186816 KB, 6400 KB/s, 185 seconds passed\n",
            "... 98%, 1187840 KB, 6402 KB/s, 185 seconds passed\n",
            "... 99%, 1188864 KB, 6404 KB/s, 185 seconds passed\n",
            "... 99%, 1189888 KB, 6405 KB/s, 185 seconds passed\n",
            "... 99%, 1190912 KB, 6406 KB/s, 185 seconds passed\n",
            "... 99%, 1191936 KB, 6408 KB/s, 185 seconds passed\n",
            "... 99%, 1192960 KB, 6410 KB/s, 186 seconds passed\n",
            "... 99%, 1193984 KB, 6412 KB/s, 186 seconds passed\n",
            "... 99%, 1195008 KB, 6414 KB/s, 186 seconds passed\n",
            "... 99%, 1196032 KB, 6415 KB/s, 186 seconds passed\n",
            "... 99%, 1197056 KB, 6416 KB/s, 186 seconds passed\n",
            "... 99%, 1198080 KB, 6417 KB/s, 186 seconds passed\n",
            "... 99%, 1199104 KB, 6415 KB/s, 186 seconds passed\n",
            "... 99%, 1200128 KB, 6411 KB/s, 187 seconds passed\n",
            "... 100%, 1200215 KB, 6411 KB/s, 187 seconds passed\n",
            "\n",
            "========== Unpacking /tmp/model/public/mozilla-deepspeech-0.6.1/deepspeech-0.6.1-models.tar.gz\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "sdQgt9XNLyKB"
      },
      "source": [
        "### 2. Convert our model to the Intermediate Representation (IR)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PrstRFrTRbHM"
      },
      "source": [
        "OpenVINO™ toolkit introduces its own format of graph representation and its own operation set. A graph is represented with two files: an XML file and a binary file. This representation is commonly referred to as the Intermediate Representation or IR."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "r2426698SDWD"
      },
      "source": [
        "`docker run` comman will run a container with `converter.py` to convert the model stored in `/tmp/model` folder and save it to `/tmp/model/converted` folder. "
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "WPEK2tAMLyKC",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "7376684f-ef31-4a9c-c4d5-767f4e623921"
      },
      "source": [
        "!docker run -u 0 --rm -v /tmp/model:/tmp/model openvino/ubuntu18_data_dev:2021.3  deployment_tools/open_model_zoo/tools/downloader/converter.py  --name mozilla-deepspeech-0.6.1 -d /tmp/model -o /tmp/model/converted"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "========== Converting mozilla-deepspeech-0.6.1 to IR (FP16)\r\n",
            "Conversion command: /usr/bin/python3 -- /opt/intel/openvino/deployment_tools/model_optimizer/mo.py --framework=tf --data_type=FP16 --output_dir=/tmp/model/converted/public/mozilla-deepspeech-0.6.1/FP16 --model_name=mozilla-deepspeech-0.6.1 --input_model=/tmp/model/public/mozilla-deepspeech-0.6.1/deepspeech-0.6.1-models/output_graph.pb '--freeze_placeholder_with_value=input_lengths->[16]' --input=input_node,previous_state_h,previous_state_c '--input_shape=[1,16,19,26],[1,2048],[1,2048]' --output=logits,cudnn_lstm/rnn/multi_rnn_cell/cell_0/cudnn_compatible_lstm_cell/GatherNd,cudnn_lstm/rnn/multi_rnn_cell/cell_0/cudnn_compatible_lstm_cell/GatherNd_1 --disable_nhwc_to_nchw\r\n",
            "\n",
            "Model Optimizer arguments:\n",
            "Common parameters:\n",
            "\t- Path to the Input Model: \t/tmp/model/public/mozilla-deepspeech-0.6.1/deepspeech-0.6.1-models/output_graph.pb\n",
            "\t- Path for generated IR: \t/tmp/model/converted/public/mozilla-deepspeech-0.6.1/FP16\n",
            "\t- IR output name: \tmozilla-deepspeech-0.6.1\n",
            "\t- Log level: \tERROR\n",
            "\t- Batch: \tNot specified, inherited from the model\n",
            "\t- Input layers: \tinput_node,previous_state_h,previous_state_c\n",
            "\t- Output layers: \tlogits,cudnn_lstm/rnn/multi_rnn_cell/cell_0/cudnn_compatible_lstm_cell/GatherNd,cudnn_lstm/rnn/multi_rnn_cell/cell_0/cudnn_compatible_lstm_cell/GatherNd_1\n",
            "\t- Input shapes: \t[1,16,19,26],[1,2048],[1,2048]\n",
            "\t- Mean values: \tNot specified\n",
            "\t- Scale values: \tNot specified\n",
            "\t- Scale factor: \tNot specified\n",
            "\t- Precision of IR: \tFP16\n",
            "\t- Enable fusing: \tTrue\n",
            "\t- Enable grouped convolutions fusing: \tTrue\n",
            "\t- Move mean values to preprocess section: \tNone\n",
            "\t- Reverse input channels: \tFalse\n",
            "TensorFlow specific parameters:\n",
            "\t- Input model in text protobuf format: \tFalse\n",
            "\t- Path to model dump for TensorBoard: \tNone\n",
            "\t- List of shared libraries with TensorFlow custom layers implementation: \tNone\n",
            "\t- Update the configuration file with input/output node names: \tNone\n",
            "\t- Use configuration file used to generate the model with Object Detection API: \tNone\n",
            "\t- Use the config file: \tNone\n",
            "[ WARNING ] Failed to import Inference Engine Python API in: /opt/intel/openvino_2021.3.394/python/python3.6\n",
            "[ WARNING ] libinference_engine.so: cannot open shared object file: No such file or directory\n",
            "\t- Inference Engine found in: \t/opt/intel/openvino_2021.3.394/python/python3.6/openvino\n",
            "Inference Engine version: \t2.1.2021.3.0-2787-60059f2c755-releases/2021/3\n",
            "Model Optimizer version: \t    2021.3.0-2787-60059f2c755-releases/2021/3\n",
            "[ SUCCESS ] Generated IR version 10 model.\n",
            "[ SUCCESS ] XML file: /tmp/model/converted/public/mozilla-deepspeech-0.6.1/FP16/mozilla-deepspeech-0.6.1.xml\n",
            "[ SUCCESS ] BIN file: /tmp/model/converted/public/mozilla-deepspeech-0.6.1/FP16/mozilla-deepspeech-0.6.1.bin\n",
            "[ SUCCESS ] Total execution time: 9.59 seconds. \n",
            "[ SUCCESS ] Memory consumed: 1203 MB. \n",
            "\n",
            "========== Converting mozilla-deepspeech-0.6.1 to IR (FP32)\n",
            "Conversion command: /usr/bin/python3 -- /opt/intel/openvino/deployment_tools/model_optimizer/mo.py --framework=tf --data_type=FP32 --output_dir=/tmp/model/converted/public/mozilla-deepspeech-0.6.1/FP32 --model_name=mozilla-deepspeech-0.6.1 --input_model=/tmp/model/public/mozilla-deepspeech-0.6.1/deepspeech-0.6.1-models/output_graph.pb '--freeze_placeholder_with_value=input_lengths->[16]' --input=input_node,previous_state_h,previous_state_c '--input_shape=[1,16,19,26],[1,2048],[1,2048]' --output=logits,cudnn_lstm/rnn/multi_rnn_cell/cell_0/cudnn_compatible_lstm_cell/GatherNd,cudnn_lstm/rnn/multi_rnn_cell/cell_0/cudnn_compatible_lstm_cell/GatherNd_1 --disable_nhwc_to_nchw\n",
            "\n",
            "Model Optimizer arguments:\n",
            "Common parameters:\n",
            "\t- Path to the Input Model: \t/tmp/model/public/mozilla-deepspeech-0.6.1/deepspeech-0.6.1-models/output_graph.pb\n",
            "\t- Path for generated IR: \t/tmp/model/converted/public/mozilla-deepspeech-0.6.1/FP32\n",
            "\t- IR output name: \tmozilla-deepspeech-0.6.1\n",
            "\t- Log level: \tERROR\n",
            "\t- Batch: \tNot specified, inherited from the model\n",
            "\t- Input layers: \tinput_node,previous_state_h,previous_state_c\n",
            "\t- Output layers: \tlogits,cudnn_lstm/rnn/multi_rnn_cell/cell_0/cudnn_compatible_lstm_cell/GatherNd,cudnn_lstm/rnn/multi_rnn_cell/cell_0/cudnn_compatible_lstm_cell/GatherNd_1\n",
            "\t- Input shapes: \t[1,16,19,26],[1,2048],[1,2048]\n",
            "\t- Mean values: \tNot specified\n",
            "\t- Scale values: \tNot specified\n",
            "\t- Scale factor: \tNot specified\n",
            "\t- Precision of IR: \tFP32\n",
            "\t- Enable fusing: \tTrue\n",
            "\t- Enable grouped convolutions fusing: \tTrue\n",
            "\t- Move mean values to preprocess section: \tNone\n",
            "\t- Reverse input channels: \tFalse\n",
            "TensorFlow specific parameters:\n",
            "\t- Input model in text protobuf format: \tFalse\n",
            "\t- Path to model dump for TensorBoard: \tNone\n",
            "\t- List of shared libraries with TensorFlow custom layers implementation: \tNone\n",
            "\t- Update the configuration file with input/output node names: \tNone\n",
            "\t- Use configuration file used to generate the model with Object Detection API: \tNone\n",
            "\t- Use the config file: \tNone\n",
            "[ WARNING ] Failed to import Inference Engine Python API in: /opt/intel/openvino_2021.3.394/python/python3.6\n",
            "[ WARNING ] libinference_engine.so: cannot open shared object file: No such file or directory\n",
            "\t- Inference Engine found in: \t/opt/intel/openvino_2021.3.394/python/python3.6/openvino\n",
            "Inference Engine version: \t2.1.2021.3.0-2787-60059f2c755-releases/2021/3\n",
            "Model Optimizer version: \t    2021.3.0-2787-60059f2c755-releases/2021/3\n",
            "[ SUCCESS ] Generated IR version 10 model.\n",
            "[ SUCCESS ] XML file: /tmp/model/converted/public/mozilla-deepspeech-0.6.1/FP32/mozilla-deepspeech-0.6.1.xml\n",
            "[ SUCCESS ] BIN file: /tmp/model/converted/public/mozilla-deepspeech-0.6.1/FP32/mozilla-deepspeech-0.6.1.bin\n",
            "[ SUCCESS ] Total execution time: 8.55 seconds. \n",
            "[ SUCCESS ] Memory consumed: 1204 MB. \n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qSPLNp9uLyKC"
      },
      "source": [
        "### 3. Execute the Speech Recognition Demo"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "8Ttb5sagS-k8"
      },
      "source": [
        "We need execute 3 steps to run speech demo in isolated environment:\n",
        "\n",
        "1. We will build ctcdecode_numpy Python module, which implements CTC decoding in C++ for faster decoding.\n",
        "2. Source OpenVINO setupvars.\n",
        "3. Run Speech Recognition Demo with converted model, how_are_you_doing.wav audio sample stored in the OpenVINO package and pre/post-processing profile `-p mds06x_en` for Mozilla DeepSpeech v0.6.x model.\n",
        "\n",
        "`docker run` command will run a container with `/bin/bash` session to execute 3 mentioned steps above."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ZFK9TYO8LyKC",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "29897fba-2dcc-4208-ee12-1ae7255b023e"
      },
      "source": [
        "!docker run -u 0 --rm -v /tmp/model:/tmp/model openvino/ubuntu18_data_dev:2021.3 /bin/bash -c \"cd deployment_tools/open_model_zoo/demos/speech_recognition_demo/python/ctcdecode-numpy && python3 -m pip install . && cd ../ && source /opt/intel/openvino/bin/setupvars.sh && python3 speech_recognition_demo.py -m /tmp/model/converted/public/mozilla-deepspeech-0.6.1/FP16/mozilla-deepspeech-0.6.1.xml -L /tmp/model/public/mozilla-deepspeech-0.6.1/deepspeech-0.6.1-models/lm.binary -p mds06x_en -i /opt/intel/openvino/deployment_tools/demo/how_are_you_doing.wav\""
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Processing /opt/intel/openvino_2021.3.394/deployment_tools/open_model_zoo/demos/speech_recognition_demo/python/ctcdecode-numpy\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from ctcdecode-numpy==0.2) (1.16.6)\n",
            "Building wheels for collected packages: ctcdecode-numpy\n",
            "  Building wheel for ctcdecode-numpy (setup.py): started\n",
            "  Building wheel for ctcdecode-numpy (setup.py): finished with status 'done'\n",
            "  Created wheel for ctcdecode-numpy: filename=ctcdecode_numpy-0.2-cp36-cp36m-linux_x86_64.whl size=1367090 sha256=ab8fcb308eaf03f455d15414cd5e41034f4f2a837432a9e2375c7dac1a1c1268\n",
            "  Stored in directory: /root/.cache/pip/wheels/ed/4e/96/8b168e73f4c6ad89de2e4cb3fcb62a3dc2a7b94c73476cef06\n",
            "Successfully built ctcdecode-numpy\n",
            "Installing collected packages: ctcdecode-numpy\n",
            "Successfully installed ctcdecode-numpy-0.2\n",
            "WARNING: You are using pip version 21.0.1; however, version 21.1.1 is available.\n",
            "You should consider upgrading via the '/usr/bin/python3 -m pip install --upgrade pip' command.\n",
            "[setupvars.sh] OpenVINO environment initialized\n",
            "100%|##########| 11/11 [00:00<00:00, 21.71it/s]\n",
            "Loading, including network weights, IE initialization, LM, building LM vocabulary trie, loading audio: 1.9737495279987343 s\n",
            "Audio file length: 3.405 s\n",
            "MFCC time: 0.0034373460221104324 s\n",
            "RNN time: 0.5094106969772838 s\n",
            "Beam search time: 0.03883401898201555 s\n",
            "Overall time: 2.525500933988951 s\n",
            "\n",
            "Transcription and confidence score:\n",
            "4.626835823059082\thow are you doing\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "pGd7SHHmLyKD"
      },
      "source": [
        "## Part 2. Set up OpenVINO runtime container to execute our demo"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "hjkt7OcQLyKD"
      },
      "source": [
        "Let's imagine that we need to deploy this speech recognizer to production. OpenVINO provides a lightweight runtime container for this purpose. \n",
        "\n",
        "\n",
        "\n",
        "First, we need copy demo and audio sample from data dev image to the host `/tmp/demo` folder:"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "guwv5jHSwYod"
      },
      "source": [
        "OpenVINO runtime image is 7 times lighter than data_dev image:\n",
        "\n",
        "```\n",
        "Image                              Hash           Size\n",
        "\n",
        "openvino/ubuntu18_data_dev:2021.3  44513bd0f523  8.58GB\n",
        "\n",
        "openvino/ubuntu18_runtime:2021.3   ab47b8e21031  1.11GB\n",
        "```"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "d4T9ZbHmLyKD"
      },
      "source": [
        "!docker run -u 0 --rm -v /tmp/demo:/tmp/demo openvino/ubuntu18_data_dev:2021.3 /bin/bash -c \"cp -rf deployment_tools/open_model_zoo/demos/speech_recognition_demo/python /tmp/demo && cp -rf  /opt/intel/openvino/deployment_tools/demo/how_are_you_doing.wav /tmp/demo\""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "yNVn73w0sJ7o"
      },
      "source": [
        "Second, let's try to run it on runtime OpenVINO image. We need repeat 3 steps mentioned above for data_dev image and install compiler, Python development tools to build pip wheel for ctcdecode-numpy and install `libsndfile1` library for reading/writing audio files:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "L5JT826YLyKD",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "3bd927f3-fe3f-45b3-ba00-6af59e44a650"
      },
      "source": [
        "!docker run -u 0 --rm -v /tmp/demo:/tmp/demo -v /tmp/model:/tmp/model  openvino/ubuntu18_runtime /bin/bash -c \"apt update && apt install -y gcc g++ python3-dev libsndfile1 && pip3 install -r /tmp/demo/python/requirements.txt && cd /tmp/demo/python/ctcdecode-numpy && pip3 install . && cd ../ && source /opt/intel/openvino/bin/setupvars.sh && python3 speech_recognition_demo.py -m /tmp/model/converted/public/mozilla-deepspeech-0.6.1/FP16/mozilla-deepspeech-0.6.1.xml -L /tmp/model/public/mozilla-deepspeech-0.6.1/deepspeech-0.6.1-models/lm.binary -p mds06x_en -i /tmp/demo/how_are_you_doing.wav\""
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\r\n",
            "WARNING: apt does not have a stable CLI interface. Use with caution in scripts.\r\n",
            "\n",
            "Get:1 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]\n",
            "Get:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]\n",
            "Get:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]\n",
            "Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]\n",
            "Get:5 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [11.3 MB]\n",
            "Get:6 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [24.7 kB]\n",
            "Get:7 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [2119 kB]\n",
            "Get:8 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 Packages [1410 kB]\n",
            "Get:9 http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [399 kB]\n",
            "Get:10 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages [1344 kB]\n",
            "Get:11 http://archive.ubuntu.com/ubuntu bionic/multiverse amd64 Packages [186 kB]\n",
            "Get:12 http://archive.ubuntu.com/ubuntu bionic/restricted amd64 Packages [13.5 kB]\n",
            "Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2550 kB]\n",
            "Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [2181 kB]\n",
            "Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/restricted amd64 Packages [429 kB]\n",
            "Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 Packages [31.6 kB]\n",
            "Get:17 http://archive.ubuntu.com/ubuntu bionic-backports/main amd64 Packages [11.3 kB]\n",
            "Get:18 http://archive.ubuntu.com/ubuntu bionic-backports/universe amd64 Packages [11.4 kB]\n",
            "Fetched 22.5 MB in 6s (3668 kB/s)\n",
            "Reading package lists...\n",
            "Building dependency tree...\n",
            "Reading state information...\n",
            "15 packages can be upgraded. Run 'apt list --upgradable' to see them.\n",
            "\n",
            "WARNING: apt does not have a stable CLI interface. Use with caution in scripts.\n",
            "\n",
            "Reading package lists...\n",
            "Building dependency tree...\n",
            "Reading state information...\n",
            "python3-dev is already the newest version (3.6.7-1~18.04).\n",
            "The following additional packages will be installed:\n",
            "  binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-7 g++-7 gcc-7\n",
            "  gcc-7-base libasan4 libbinutils libcc1-0 libcilkrts5 libflac8 libgcc-7-dev\n",
            "  libisl19 liblsan0 libmpc3 libmpfr6 libmpx2 libogg0 libstdc++-7-dev libubsan0\n",
            "  libvorbis0a libvorbisenc2\n",
            "Suggested packages:\n",
            "  binutils-doc cpp-doc gcc-7-locales g++-multilib g++-7-multilib gcc-7-doc\n",
            "  libstdc++6-7-dbg gcc-multilib make manpages-dev autoconf automake libtool\n",
            "  flex bison gdb gcc-doc gcc-7-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg\n",
            "  libatomic1-dbg libasan4-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg\n",
            "  libcilkrts5-dbg libmpx2-dbg libquadmath0-dbg libstdc++-7-doc\n",
            "The following NEW packages will be installed:\n",
            "  binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-7 g++ g++-7 gcc\n",
            "  gcc-7 gcc-7-base libasan4 libbinutils libcc1-0 libcilkrts5 libflac8\n",
            "  libgcc-7-dev libisl19 liblsan0 libmpc3 libmpfr6 libmpx2 libogg0 libsndfile1\n",
            "  libstdc++-7-dev libubsan0 libvorbis0a libvorbisenc2\n",
            "0 upgraded, 27 newly installed, 0 to remove and 15 not upgraded.\n",
            "Need to get 36.2 MB of archives.\n",
            "After this operation, 132 MB of additional disk space will be used.\n",
            "Get:1 http://archive.ubuntu.com/ubuntu bionic/main amd64 libogg0 amd64 1.3.2-1 [17.2 kB]\n",
            "Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-common amd64 2.30-21ubuntu1~18.04.5 [197 kB]\n",
            "Get:3 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libbinutils amd64 2.30-21ubuntu1~18.04.5 [489 kB]\n",
            "Get:4 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils-x86-64-linux-gnu amd64 2.30-21ubuntu1~18.04.5 [1839 kB]\n",
            "Get:5 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 binutils amd64 2.30-21ubuntu1~18.04.5 [3388 B]\n",
            "Get:6 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc-7-base amd64 7.5.0-3ubuntu1~18.04 [18.3 kB]\n",
            "Get:7 http://archive.ubuntu.com/ubuntu bionic/main amd64 libisl19 amd64 0.19-1 [551 kB]\n",
            "Get:8 http://archive.ubuntu.com/ubuntu bionic/main amd64 libmpfr6 amd64 4.0.1-1 [243 kB]\n",
            "Get:9 http://archive.ubuntu.com/ubuntu bionic/main amd64 libmpc3 amd64 1.1.0-1 [40.8 kB]\n",
            "Get:10 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 cpp-7 amd64 7.5.0-3ubuntu1~18.04 [8591 kB]\n",
            "Get:11 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 cpp amd64 4:7.4.0-1ubuntu2.3 [27.7 kB]\n",
            "Get:12 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcc1-0 amd64 8.4.0-1ubuntu1~18.04 [39.4 kB]\n",
            "Get:13 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libasan4 amd64 7.5.0-3ubuntu1~18.04 [358 kB]\n",
            "Get:14 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 liblsan0 amd64 8.4.0-1ubuntu1~18.04 [133 kB]\n",
            "Get:15 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libubsan0 amd64 7.5.0-3ubuntu1~18.04 [126 kB]\n",
            "Get:16 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcilkrts5 amd64 7.5.0-3ubuntu1~18.04 [42.5 kB]\n",
            "Get:17 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libmpx2 amd64 8.4.0-1ubuntu1~18.04 [11.6 kB]\n",
            "Get:18 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libgcc-7-dev amd64 7.5.0-3ubuntu1~18.04 [2378 kB]\n",
            "Get:19 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc-7 amd64 7.5.0-3ubuntu1~18.04 [9381 kB]\n",
            "Get:20 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 gcc amd64 4:7.4.0-1ubuntu2.3 [5184 B]\n",
            "Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libstdc++-7-dev amd64 7.5.0-3ubuntu1~18.04 [1471 kB]\n",
            "Get:22 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 g++-7 amd64 7.5.0-3ubuntu1~18.04 [9697 kB]\n",
            "Get:23 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 g++ amd64 4:7.4.0-1ubuntu2.3 [1568 B]\n",
            "Get:24 http://archive.ubuntu.com/ubuntu bionic/main amd64 libflac8 amd64 1.3.2-1 [213 kB]\n",
            "Get:25 http://archive.ubuntu.com/ubuntu bionic/main amd64 libvorbis0a amd64 1.3.5-4.2 [86.4 kB]\n",
            "Get:26 http://archive.ubuntu.com/ubuntu bionic/main amd64 libvorbisenc2 amd64 1.3.5-4.2 [70.7 kB]\n",
            "Get:27 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 libsndfile1 amd64 1.0.28-4ubuntu0.18.04.1 [170 kB]\n",
            "debconf: delaying package configuration, since apt-utils is not installed\n",
            "Fetched 36.2 MB in 10s (3449 kB/s)\n",
            "Selecting previously unselected package libogg0:amd64.\n",
            "(Reading database ... 38958 files and directories currently installed.)\n",
            "Preparing to unpack .../00-libogg0_1.3.2-1_amd64.deb ...\n",
            "Unpacking libogg0:amd64 (1.3.2-1) ...\n",
            "Selecting previously unselected package binutils-common:amd64.\n",
            "Preparing to unpack .../01-binutils-common_2.30-21ubuntu1~18.04.5_amd64.deb ...\n",
            "Unpacking binutils-common:amd64 (2.30-21ubuntu1~18.04.5) ...\n",
            "Selecting previously unselected package libbinutils:amd64.\n",
            "Preparing to unpack .../02-libbinutils_2.30-21ubuntu1~18.04.5_amd64.deb ...\n",
            "Unpacking libbinutils:amd64 (2.30-21ubuntu1~18.04.5) ...\n",
            "Selecting previously unselected package binutils-x86-64-linux-gnu.\n",
            "Preparing to unpack .../03-binutils-x86-64-linux-gnu_2.30-21ubuntu1~18.04.5_amd64.deb ...\n",
            "Unpacking binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.5) ...\n",
            "Selecting previously unselected package binutils.\n",
            "Preparing to unpack .../04-binutils_2.30-21ubuntu1~18.04.5_amd64.deb ...\n",
            "Unpacking binutils (2.30-21ubuntu1~18.04.5) ...\n",
            "Selecting previously unselected package gcc-7-base:amd64.\n",
            "Preparing to unpack .../05-gcc-7-base_7.5.0-3ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking gcc-7-base:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Selecting previously unselected package libisl19:amd64.\n",
            "Preparing to unpack .../06-libisl19_0.19-1_amd64.deb ...\n",
            "Unpacking libisl19:amd64 (0.19-1) ...\n",
            "Selecting previously unselected package libmpfr6:amd64.\n",
            "Preparing to unpack .../07-libmpfr6_4.0.1-1_amd64.deb ...\n",
            "Unpacking libmpfr6:amd64 (4.0.1-1) ...\n",
            "Selecting previously unselected package libmpc3:amd64.\n",
            "Preparing to unpack .../08-libmpc3_1.1.0-1_amd64.deb ...\n",
            "Unpacking libmpc3:amd64 (1.1.0-1) ...\n",
            "Selecting previously unselected package cpp-7.\n",
            "Preparing to unpack .../09-cpp-7_7.5.0-3ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking cpp-7 (7.5.0-3ubuntu1~18.04) ...\n",
            "Selecting previously unselected package cpp.\n",
            "Preparing to unpack .../10-cpp_4%3a7.4.0-1ubuntu2.3_amd64.deb ...\n",
            "Unpacking cpp (4:7.4.0-1ubuntu2.3) ...\n",
            "Selecting previously unselected package libcc1-0:amd64.\n",
            "Preparing to unpack .../11-libcc1-0_8.4.0-1ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking libcc1-0:amd64 (8.4.0-1ubuntu1~18.04) ...\n",
            "Selecting previously unselected package libasan4:amd64.\n",
            "Preparing to unpack .../12-libasan4_7.5.0-3ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking libasan4:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Selecting previously unselected package liblsan0:amd64.\n",
            "Preparing to unpack .../13-liblsan0_8.4.0-1ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking liblsan0:amd64 (8.4.0-1ubuntu1~18.04) ...\n",
            "Selecting previously unselected package libubsan0:amd64.\n",
            "Preparing to unpack .../14-libubsan0_7.5.0-3ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking libubsan0:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Selecting previously unselected package libcilkrts5:amd64.\n",
            "Preparing to unpack .../15-libcilkrts5_7.5.0-3ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking libcilkrts5:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Selecting previously unselected package libmpx2:amd64.\n",
            "Preparing to unpack .../16-libmpx2_8.4.0-1ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking libmpx2:amd64 (8.4.0-1ubuntu1~18.04) ...\n",
            "Selecting previously unselected package libgcc-7-dev:amd64.\n",
            "Preparing to unpack .../17-libgcc-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking libgcc-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Selecting previously unselected package gcc-7.\n",
            "Preparing to unpack .../18-gcc-7_7.5.0-3ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking gcc-7 (7.5.0-3ubuntu1~18.04) ...\n",
            "Selecting previously unselected package gcc.\n",
            "Preparing to unpack .../19-gcc_4%3a7.4.0-1ubuntu2.3_amd64.deb ...\n",
            "Unpacking gcc (4:7.4.0-1ubuntu2.3) ...\n",
            "Selecting previously unselected package libstdc++-7-dev:amd64.\n",
            "Preparing to unpack .../20-libstdc++-7-dev_7.5.0-3ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking libstdc++-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Selecting previously unselected package g++-7.\n",
            "Preparing to unpack .../21-g++-7_7.5.0-3ubuntu1~18.04_amd64.deb ...\n",
            "Unpacking g++-7 (7.5.0-3ubuntu1~18.04) ...\n",
            "Selecting previously unselected package g++.\n",
            "Preparing to unpack .../22-g++_4%3a7.4.0-1ubuntu2.3_amd64.deb ...\n",
            "Unpacking g++ (4:7.4.0-1ubuntu2.3) ...\n",
            "Selecting previously unselected package libflac8:amd64.\n",
            "Preparing to unpack .../23-libflac8_1.3.2-1_amd64.deb ...\n",
            "Unpacking libflac8:amd64 (1.3.2-1) ...\n",
            "Selecting previously unselected package libvorbis0a:amd64.\n",
            "Preparing to unpack .../24-libvorbis0a_1.3.5-4.2_amd64.deb ...\n",
            "Unpacking libvorbis0a:amd64 (1.3.5-4.2) ...\n",
            "Selecting previously unselected package libvorbisenc2:amd64.\n",
            "Preparing to unpack .../25-libvorbisenc2_1.3.5-4.2_amd64.deb ...\n",
            "Unpacking libvorbisenc2:amd64 (1.3.5-4.2) ...\n",
            "Selecting previously unselected package libsndfile1:amd64.\n",
            "Preparing to unpack .../26-libsndfile1_1.0.28-4ubuntu0.18.04.1_amd64.deb ...\n",
            "Unpacking libsndfile1:amd64 (1.0.28-4ubuntu0.18.04.1) ...\n",
            "Setting up libcc1-0:amd64 (8.4.0-1ubuntu1~18.04) ...\n",
            "Setting up libmpfr6:amd64 (4.0.1-1) ...\n",
            "Setting up liblsan0:amd64 (8.4.0-1ubuntu1~18.04) ...\n",
            "Setting up gcc-7-base:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Setting up libogg0:amd64 (1.3.2-1) ...\n",
            "Setting up binutils-common:amd64 (2.30-21ubuntu1~18.04.5) ...\n",
            "Setting up libmpx2:amd64 (8.4.0-1ubuntu1~18.04) ...\n",
            "Setting up libmpc3:amd64 (1.1.0-1) ...\n",
            "Setting up libvorbis0a:amd64 (1.3.5-4.2) ...\n",
            "Setting up libisl19:amd64 (0.19-1) ...\n",
            "Setting up libasan4:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Setting up libbinutils:amd64 (2.30-21ubuntu1~18.04.5) ...\n",
            "Setting up libcilkrts5:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Setting up libubsan0:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Setting up libflac8:amd64 (1.3.2-1) ...\n",
            "Setting up libgcc-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Setting up cpp-7 (7.5.0-3ubuntu1~18.04) ...\n",
            "Setting up libstdc++-7-dev:amd64 (7.5.0-3ubuntu1~18.04) ...\n",
            "Setting up libvorbisenc2:amd64 (1.3.5-4.2) ...\n",
            "Setting up binutils-x86-64-linux-gnu (2.30-21ubuntu1~18.04.5) ...\n",
            "Setting up cpp (4:7.4.0-1ubuntu2.3) ...\n",
            "Setting up libsndfile1:amd64 (1.0.28-4ubuntu0.18.04.1) ...\n",
            "Setting up binutils (2.30-21ubuntu1~18.04.5) ...\n",
            "Setting up gcc-7 (7.5.0-3ubuntu1~18.04) ...\n",
            "Setting up g++-7 (7.5.0-3ubuntu1~18.04) ...\n",
            "Setting up gcc (4:7.4.0-1ubuntu2.3) ...\n",
            "Setting up g++ (4:7.4.0-1ubuntu2.3) ...\n",
            "update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode\n",
            "update-alternatives: warning: skip creation of /usr/share/man/man1/c++.1.gz because associated file /usr/share/man/man1/g++.1.gz (of link group c++) doesn't exist\n",
            "Processing triggers for libc-bin (2.27-3ubuntu1.4) ...\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from -r /tmp/demo/python/requirements.txt (line 1)) (1.19.5)\n",
            "Collecting tqdm\n",
            "  Downloading tqdm-4.60.0-py2.py3-none-any.whl (75 kB)\n",
            "Collecting librosa\n",
            "  Downloading librosa-0.8.0.tar.gz (183 kB)\n",
            "Collecting pyyaml\n",
            "  Downloading PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl (640 kB)\n",
            "Collecting audioread>=2.0.0\n",
            "  Downloading audioread-2.1.9.tar.gz (377 kB)\n",
            "Collecting decorator>=3.0.0\n",
            "  Downloading decorator-5.0.7-py3-none-any.whl (8.8 kB)\n",
            "Collecting joblib>=0.14\n",
            "  Downloading joblib-1.0.1-py3-none-any.whl (303 kB)\n",
            "Collecting numba>=0.43.0\n",
            "  Downloading numba-0.53.1-cp36-cp36m-manylinux2014_x86_64.whl (3.4 MB)\n",
            "Collecting pooch>=1.0\n",
            "  Downloading pooch-1.3.0-py3-none-any.whl (51 kB)\n",
            "Collecting resampy>=0.2.2\n",
            "  Downloading resampy-0.2.2.tar.gz (323 kB)\n",
            "Collecting scikit-learn!=0.19.0,>=0.14.0\n",
            "  Downloading scikit_learn-0.24.2-cp36-cp36m-manylinux2010_x86_64.whl (22.2 MB)\n",
            "Collecting scipy>=1.0.0\n",
            "  Downloading scipy-1.5.4-cp36-cp36m-manylinux1_x86_64.whl (25.9 MB)\n",
            "Collecting soundfile>=0.9.0\n",
            "  Downloading SoundFile-0.10.3.post1-py2.py3-none-any.whl (21 kB)\n",
            "Collecting llvmlite<0.37,>=0.36.0rc1\n",
            "  Downloading llvmlite-0.36.0-cp36-cp36m-manylinux2010_x86_64.whl (25.3 MB)\n",
            "Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from numba>=0.43.0->librosa->-r /tmp/demo/python/requirements.txt (line 3)) (39.0.1)\n",
            "Collecting requests\n",
            "  Downloading requests-2.25.1-py2.py3-none-any.whl (61 kB)\n",
            "Collecting appdirs\n",
            "  Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)\n",
            "Collecting packaging\n",
            "  Downloading packaging-20.9-py2.py3-none-any.whl (40 kB)\n",
            "Collecting six>=1.3\n",
            "  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)\n",
            "Collecting threadpoolctl>=2.0.0\n",
            "  Downloading threadpoolctl-2.1.0-py3-none-any.whl (12 kB)\n",
            "Collecting cffi>=1.0\n",
            "  Downloading cffi-1.14.5-cp36-cp36m-manylinux1_x86_64.whl (401 kB)\n",
            "Collecting pycparser\n",
            "  Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)\n",
            "Collecting pyparsing>=2.0.2\n",
            "  Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)\n",
            "Collecting urllib3<1.27,>=1.21.1\n",
            "  Downloading urllib3-1.26.4-py2.py3-none-any.whl (153 kB)\n",
            "Collecting idna<3,>=2.5\n",
            "  Downloading idna-2.10-py2.py3-none-any.whl (58 kB)\n",
            "Collecting certifi>=2017.4.17\n",
            "  Downloading certifi-2020.12.5-py2.py3-none-any.whl (147 kB)\n",
            "Collecting chardet<5,>=3.0.2\n",
            "  Downloading chardet-4.0.0-py2.py3-none-any.whl (178 kB)\n",
            "Using legacy 'setup.py install' for librosa, since package 'wheel' is not installed.\n",
            "Using legacy 'setup.py install' for audioread, since package 'wheel' is not installed.\n",
            "Using legacy 'setup.py install' for resampy, since package 'wheel' is not installed.\n",
            "Installing collected packages: urllib3, pyparsing, pycparser, llvmlite, idna, chardet, certifi, threadpoolctl, six, scipy, requests, packaging, numba, joblib, cffi, appdirs, soundfile, scikit-learn, resampy, pooch, decorator, audioread, tqdm, pyyaml, librosa\n",
            "    Running setup.py install for resampy: started\n",
            "    Running setup.py install for resampy: finished with status 'done'\n",
            "    Running setup.py install for audioread: started\n",
            "    Running setup.py install for audioread: finished with status 'done'\n",
            "    Running setup.py install for librosa: started\n",
            "    Running setup.py install for librosa: finished with status 'done'\n",
            "Successfully installed appdirs-1.4.4 audioread-2.1.9 certifi-2020.12.5 cffi-1.14.5 chardet-4.0.0 decorator-5.0.7 idna-2.10 joblib-1.0.1 librosa-0.8.0 llvmlite-0.36.0 numba-0.53.1 packaging-20.9 pooch-1.3.0 pycparser-2.20 pyparsing-2.4.7 pyyaml-5.4.1 requests-2.25.1 resampy-0.2.2 scikit-learn-0.24.2 scipy-1.5.4 six-1.15.0 soundfile-0.10.3.post1 threadpoolctl-2.1.0 tqdm-4.60.0 urllib3-1.26.4\n",
            "WARNING: You are using pip version 21.0.1; however, version 21.1.1 is available.\n",
            "You should consider upgrading via the '/usr/bin/python3.6 -m pip install --upgrade pip' command.\n",
            "Processing /tmp/demo/python/ctcdecode-numpy\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from ctcdecode-numpy==0.2) (1.19.5)\n",
            "Using legacy 'setup.py install' for ctcdecode-numpy, since package 'wheel' is not installed.\n",
            "Installing collected packages: ctcdecode-numpy\n",
            "    Running setup.py install for ctcdecode-numpy: started\n",
            "    Running setup.py install for ctcdecode-numpy: finished with status 'done'\n",
            "Successfully installed ctcdecode-numpy-0.2\n",
            "WARNING: You are using pip version 21.0.1; however, version 21.1.1 is available.\n",
            "You should consider upgrading via the '/usr/bin/python3.6 -m pip install --upgrade pip' command.\n",
            "[setupvars.sh] OpenVINO environment initialized\n",
            "100%|##########| 11/11 [00:00<00:00, 21.77it/s]Loading, including network weights, IE initialization, LM, building LM vocabulary trie, loading audio: 1.7702744269627146 s\n",
            "Audio file length: 3.405 s\n",
            "MFCC time: 0.0027910980279557407 s\n",
            "RNN time: 0.5074535650201142 s\n",
            "Beam search time: 0.04133672796888277 s\n",
            "Overall time: 2.321937608998269 s\n",
            "\n",
            "Transcription and confidence score:\n",
            "4.626835823059082\thow are you doing\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "reGR71WVuYqe"
      },
      "source": [
        "Third, let's save our lightweight runtime image. In that case, we should execute some additional steps:\n",
        "\n",
        "\n",
        "1.   Run a container in interactive mode and set a name for it to use it later:\n",
        "\n",
        "\n",
        "```\n",
        "docker run -u 0 -it --name speech --rm -v /tmp/demo:/tmp/demo -v /tmp/model:/tmp/model openvino/ubuntu18_runtime\n",
        "```\n",
        "\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ahVNSj8st60N"
      },
      "source": [
        "2.   Execute our 3 prerequisite steps to setup environment for the speech sample.\n",
        "\n",
        "\n",
        "```\n",
        "apt update && apt install -y gcc g++ python3-dev libsndfile1 && pip3 install -r /tmp/demo/python/requirements.txt && cd /tmp/demo/python/ctcdecode-numpy && pip3 install . \n",
        "```\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "XwH3n0WcuCV9"
      },
      "source": [
        "3.   Copy demo and model in the image\n",
        "\n",
        "\n",
        "\n",
        "```\n",
        "cp -rf /tmp/demo/python/* /opt/intel/openvino && cp -rf /tmp/demo/how_are_you_doing.wav /opt/intel/openvino && cp -rf /tmp/model/converted/public/mozilla-deepspeech-0.6.1/FP16/* /opt/intel/openvino && cp -rf /tmp/model/public/mozilla-deepspeech-0.6.1/deepspeech-0.6.1-models/* /opt/intel/openvino\n",
        "```\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "I84T0qIyuy90"
      },
      "source": [
        "4.   Remove build artifacts\n",
        "\n",
        "\n",
        "\n",
        "```\n",
        "apt autoremove -y gcc g++ && rm -rf /var/lib/apt/lists/* && cd -\n",
        "```\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "90UL-oB8szXc"
      },
      "source": [
        "Now, our container is ready to be saved as a new image. Up another console and run `docker commit`:\n",
        "\n",
        "```sh\n",
        "docker commit speech ubuntu18_runtime:speech\n",
        "```\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "c8B12G5etRIx"
      },
      "source": [
        "\n",
        "Created image (Mozilla* DeepSpeech is a very big, plus 2 Gb to the runtime image):\n",
        "```\n",
        "Name                                 Hash                Size\n",
        "ubuntu18_runtime:speech              6451dd798120       3.08GB\n",
        "```\n",
        "\n",
        "\n",
        "We can run the demo as non-root user with our speech image: \n",
        "\n",
        "\n",
        "```\n",
        "docker run --rm ubuntu18_runtime:speech /bin/bash -c \"source bin/setupvars.sh && python3 speech_recognition_demo.py -m mozilla-deepspeech-0.6.1.xml -L lm.binary -p mds06x_en -i how_are_you_doing.wav\"\n",
        "```\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rChqvcLYoORI"
      },
      "source": [
        "Of course, you can run a container and inference on different Intel devices like iGPU (Intel® Processor Graphics), NCS2(Intel® Neural Compute Stick 2) or HDDL (Intel® Vision Accelerator Design with Intel® Movidius™ VPUs). "
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "DQmiZRAVp3T0"
      },
      "source": [
        "To enable GPU access, add `--device /dev/dri` to `docker run` command and `-d GPU` to demo command line. GPU will be shared as device with container:\n",
        "\n",
        "\n",
        "```\n",
        "docker run --rm --device /dev/dri ubuntu18_runtime:speech /bin/bash -c \"source bin/setupvars.sh && python3 speech_recognition_demo.py -m mozilla-deepspeech-0.6.1.xml -L lm.binary -p mds06x_en -i how_are_you_doing.wav -d GPU\"\n",
        "```\n",
        "\n",
        "\n",
        "To run inference on the NCS2 USB stick, add `--device-cgroup-rule='c 189:* rmw' -v /dev/bus/usb:/dev/bus/usb` to `docker run` command, and `-d MYRIAD` to demo command line. Mount USB stick will be shared as volume and set up the rule to the cgroup allowed 189 USB char devices the following access rights (r - read, m – mknod – create a device and w - write):\n",
        "\n",
        "```\n",
        "docker run --rm --device-cgroup-rule='c 189:* rmw' -v /dev/bus/usb:/dev/bus/usb ubuntu18_runtime:speech /bin/bash -c \"source bin/setupvars.sh && python3 speech_recognition_demo.py -m mozilla-deepspeech-0.6.1.xml -L lm.binary -p mds06x_en -i how_are_you_doing.wav -d MYRIAD\"\n",
        "```\n",
        "\n",
        "You can find more information about how to run a container with access to a specific device on our [Docker CI GitHub repo](https://github.com/openvinotoolkit/docker_ci/blob/master/get-started.md#run-a-container)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "kTRsBdVl0gUt"
      },
      "source": [
        "## Summary\n",
        "\n",
        "In this article, we briefly introduced the speech recognition demo using OpenVINO Docker images. Of course, there is much more to try. We hope that this article has motivated you to try it yourself and maybe continue to explore all the possibilities of OpenVINO Docker images.\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "tYGLL16p0AsU"
      },
      "source": [
        "## References\n",
        "\n",
        "\n",
        "\n",
        "*   [Available OpenVINO Docker images](https://github.com/openvinotoolkit/docker_ci#prebuilt-images)\n",
        "*   [Docker CI framework for Intel® Distribution of OpenVINO™ toolkit](https://github.com/openvinotoolkit/docker_ci). The Framework can generate a Dockerfile, build, test, and deploy an image with the Intel® Distribution of OpenVINO™ toolkit. You can reuse available Dockerfiles, add your layer and customize the image of OpenVINO™ for your needs.\n",
        "\n"
      ]
    }
  ]
}